1

通常、次の方法でコードを「マスター」ブランチにプッシュします。

git add . 
git commit -m "message"
git push

完璧に機能し、すべてが最新の状態で保存されています。

現在、他の誰かが別の場所から「マスター」の作業を行っています。

彼の変更を上書きせずに、私の変更をマスターにプッシュするにはどうすればよいですか? 彼のコミットのコード変更をそのまま残しますか?

通常の git push を実行すると、次のようになります。

christophecompaq@ubuntu:~/Populisto$ git push
To git@github.com:Christophe1/Populisto.git
 ! [rejected]        master -> master (non-fast-forward)
error: failed to push some refs to 'git@github.com:Christophe1/Populisto.git'
To prevent you from losing history, non-fast-forward updates were rejected
Merge the remote changes (e.g. 'git pull') before pushing again.  See the
'Note about fast-forwards' section of 'git push --help' for details.
christophecompaq@ubuntu:~/Populisto$ 

「git push -f」を使用すると、彼が行ったすべてが上書きされませんか?

ありがとう。

4

1 に答える 1

4

を実行する前に、 を実行するgit push必要がありますgit pull。他の人の作業は、最初にコードとマージする必要があり、その後、変更をリポジトリにプッシュできます。git pull は、更新されたコードをそのまま保持し、最後のコミット (他の人のコード) からのコードのみを追加/更新します (つまり、git はコードをマージします)。

両方の開発者が同じコードに取り組んでいる場合、git は最初に解決する必要がある競合を表示します。

于 2013-05-29T10:17:01.383 に答える