2016-12-30 2 views
1

私はgitリポジトリとしても存在するローカルプロジェクトを持っています。ローカルの変更をgitのリモートリポジトリの変更と統合するには?

最近私と私の同僚は、プロジェクトの2つの異なる変更に取り組みました。彼はいくつかのファイルを修正し、それをリモートリポジトリにプッシュしました。私は自分のローカルリポジトリに存在するいくつかの変更を行い、リモートリポジトリ上の彼の変更のいずれとも矛盾しません。

まずリモートリポジトリから自分の変更を取得し、私がリモートリポジトリに持って行った変更と一緒に自分の変更をプッシュする必要があります。どうすればいいのですか?

-git pull origin masterのようなものが、リモートリポジトリの現在のプロジェクトで私のローカル変更を上書きしますか?

これらのコミットをマージする方法はありますか?

答えて

2

を介して第一は、あなたの作業をコミット

git pull --rebase origin master 
git push origin master 

どちらの場合でも、作業をコミットしている限り、何も失われません。あなたのコミットは、リモートリポジトリへのプッシュに行くときに、ローカルmasterブランチのどこかにあります。

1

git pull --rebase(fetch + rebaseを意味する)がベストプラクティスです。

更新されたorigin/masterの上にローカルコミットを再生します。
次にgit pushがあなたのコミットを公開します。

あなたはGit 2.9 or moreを持っている場合は、私が推薦する:

git config --global pull.rebase true 
git config --global rebase.autoStash true 

次に簡単なgit pullは十分にあります。あなたが彼の変更をもたらすことができるいずれかのその後

git add <path/to/file1> 
git add <path/to/file2> 
# ... etc. for each file 
git commit -m 'commit message goes here' 

合併を経て:

git pull origin master 
git push origin master 

それとも、リモートmasterブランチで作業をリベースすることができます

関連する問題