在Git中只提取未更改的文件
这个问题在这里已经有了答案:
如果TFS获取最新版本与更改后的文件发生冲突,也会强制您进行合并,所以它与git pull没有什么不同。
在提交时进行大量小合并通常比一次大合并更容易,这就是为什么git的工作流程是这样。
这是可能的(如果不是一个好主意)做你在git中所要求的; 基本上你试图推迟你已经改变的文件的所有合并,直到你准备好提交原点。 为了让git正确地跟踪它,你将需要一个本地分支与你分支的分支分开。
git checkout -b mywork # Create local branch
# ... hack away ...
# When you want to get changes from origin. Note
# that you can script this part to do it as one step.
git commit # Commit my changes to local branch
git checkout master # Go back to branch tracking origin
git pull # Retrieve changes from origin
git checkout mywork
# Here's the tricky part; merge from master, taking your
# code wherever there's a conflict, and *not* recording as
# a merge; if recorded as a merge, you'll overwrite changes
# in master when you merge back
git merge --squash --strategy-option=ours master
# ... hack away ...
当你准备推送时,你将我的作品合并到主人并从那里推送。
同样,请注意,当您将mywork合并到master时,当您为一个大合并进行更改时,您正在交易许多较小的合并,而这通常不是最好的。
你总是可以fetch
更改而不是pull
它们。
当你fetch
git将更改从服务器拉到远程分支上时,例如当你fetch
master
它会更新origin/master
。 因此,您可以查看新的更改,而不会影响您的本地master
分支。
注意当你使用pull
,git实际上做的是fetch
更改,然后merge
它们merge
到你的分支中。
上一篇: Pull only unchanged files in Git
下一篇: what is the difference between git pull , git fetch and git rebase?