如何在git中将本地更改与远程存储库上的更改集成在一起?

时间:2016-12-30 08:25:15

标签: git github

我有一个本地项目,它也作为git存储库存在。

最近,我和我的同事就该项目进行了两项不同的变更。他修改了一些文件并将其推送到远程存储库。我做了一些更改,这些更改存在于我的本地存储库中,并且不会与他在远程存储库上的任何更改发生冲突。

我需要先从远程存储库中获取更改,然后将我的更改与我刚刚访问远程存储库一起推送。我该怎么做?

像git pull origin master这样的东西会覆盖我对远程存储库中当前项目的本地更改吗?

有没有办法合并这些提交?

2 个答案:

答案 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就足够了。