如何从远程存储库中仅提取未更改的文件并保留本地更改,而不进行任何合并?
有人提出了这个顺序:
git stash
git pull
git stash pop
Run Code Online (Sandbox Code Playgroud)
然而,有一个明显的缺点:最后一个命令可能存在冲突,我需要做一些事情来解决它们(就像我有大量冲突的文件,这可能会让人感到麻烦).
在TFS中,我只是做了"获取最新版本",没有大惊小怪.这里有类似的东西吗?
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 ...
Run Code Online (Sandbox Code Playgroud)
当你准备好推动时,你将我的工作合并到主人并从那里推进.
再次注意,当您将mywork合并为master时,当您为一个大合并提取更改时,您正在交易许多较小的合并,而这通常不是最好的.
| 归档时间: |
|
| 查看次数: |
1694 次 |
| 最近记录: |