我有一个本地项目,它也作为git存储库存在。
最近,我和我的同事就该项目进行了两项不同的变更。他修改了一些文件并将其推送到远程存储库。我做了一些更改,这些更改存在于我的本地存储库中,并且不会与他在远程存储库上的任何更改发生冲突。
我需要先从远程存储库中获取更改,然后将我的更改与我刚刚访问远程存储库一起推送。我该怎么做?
像git pull origin master这样的东西会覆盖我对远程存储库中当前项目的本地更改吗?
有没有办法合并这些提交?
答案 0 :(得分:3)
首先通过以下方式提交您的工作:
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
分支上修改您的工作:
git pull --rebase origin master
git push origin master
在这两种情况下,只要你投入工作,就不会丢失任何东西。当您转到远程存储库时,您的提交将在您的本地master
分支中的某处。
答案 1 :(得分: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
就足够了。