20

申し訳ありませんが、私は git の初心者です (ただし、cvs や svn などの古いソース管理システムには精通しています) ...

私の最終的な目標は、そのリモート リポジトリをローカルで複製し、ファイルをローカル リポジトリに追加し、変更をコミットしてから、ローカル リポジトリをリモートにプッシュすることによって、ファイルをリモート リポジトリ (自分のマシン上にないリポジトリ) に追加することです。

私はこれを試しました:

git clone ssh://user@server/Users/GitRepo/Project.git
<create file locally>
git add <localfile>
git commit -m "Narg"
git push

しかし、「すべて最新」とだけ書かれています。

だから私は一歩一歩進んでみましたが、さらに混乱しました。

git clone ssh://user@server/Users/GitRepo/Project.git
git status

そして、それは私に言います

# Not currently on any branch
# Untracked files:
  followed by a long list of Untracked files.

本当に奇妙に思えますが、リポジトリをクローンしただけでファイルが追跡されないのはなぜですか?

重要な場合、リモート リポジトリは svn2git で作成されたまったく新しいものです。

入力すると

git remote show origin

それは私に言う

* remote origin
  Fetch URL: ssh://user@server/Users/GitRepo/Project.git
  Push  URL: ssh://user@server/Users/GitRepo/Project.git
HEAD branch: master
Remote branch:
   master tracked
Local branch configured for 'git pull':
   master merges with remote master
Local ref configured for 'git push':
   master pushed to master (up to date)

そして、私がタイプすると

git branch -a

それは私に言う

* (no branch)
master
remotes/GitRepo/master
remotes/origin/HEAD -> origin/master
remotes/origin/master

だから私は混乱しているだけで、すべてが実際に正しく機能していますか? それとも、git コマンドを間違って実行していますか? それとも、リポジトリを正しく作成しなかったため、git コマンドが正しく機能しませんか?

ありがとう、クリス

4

4 に答える 4

10

git config -l

現在の git リポジトリの場合core.precomposeunicode=true

これを試して、

git config core.precomposeunicode false

これが理由です。ここから

core.precomposeunicode このオプションは、Git の Mac OS 実装でのみ使用されます。core.precomposeunicode=true の場合、Git は Mac OS によって行われたファイル名の Unicode 分解を元に戻します。これは、Mac OS と Linux または Windows の間でリポジトリを共有する場合に便利です。(Windows 1.7.10 以降の Git、または cygwin 1.7 の Git が必要です)。false の場合、ファイル名は Git によって完全に透過的に処理され、古いバージョンの Git と下位互換性があります。

于 2014-11-01T10:52:29.743 に答える
3

Git は素晴らしいツールですが、コミットの最前線にいる場所の適切なマップがないと、簡単に迷子になります。

そのマップを取得する方法は次のとおりです (「グラフ」に対して「gr」と呼びますが、必要に応じて「マップ」と呼ぶこともできます)。

git config --global alias.gr 'log --graph --full-history --all --color --decorate'

これは git の 1 回限りのセットアップです。道に迷ったら、地図を見てみましょう。

git gr

現在の場所は「HEAD」という単語で示され、ブランチ名も表示されます。

現在、どのブランチにもいないことがわかります。これは、実際よりもずっと悪いことのように聞こえます。実際には大したことではなく、コミットが希望どおりにマスター ブランチに入らないことを意味するだけです。 .

master ブランチに戻り、そこにコミットします。

git checkout master
git add yourfile.txt
git commit -m'Narg'
git push

また、git gr今見てみると、HEAD が master と同じコミットにあり、master が origin/master と同じコミットにあることがわかります。これは、すべての設定が完了したことを意味します。

于 2013-10-24T17:00:42.163 に答える
3

グーグルでここにたどり着くかもしれない他の人のために。

同じ問題が発生しましたが、プッシュできて「すべてが最新です」というメッセージが表示されませんでした。
問題は、Linux とは異なり、Windows と Mac OS では大文字と小文字が区別されないことです。しかし、レポは大文字と小文字を区別する OS で作成されており、大文字と小文字だけが異なる 2 つのバージョンのファイルがありました。

ここで問題があります。

于 2018-08-16T03:27:53.133 に答える