我使用过CVS、SVN和Mercurial,试图找到使用Git的"正确"方法通常是一个挑战。
我将一个公共git Repo分叉到一个私有Gitlab服务器。随着时间的推移,只有少数文件被修改。现在,我想将我的本地版本更新到公共回购的最新版本,并将(少数(本地更改文件中的更改合并到这个新版本中。
一个简单的拉或取->合并在我看来不是正确的方法。在这里重新安置基地会是更好的选择吗?我正在使用TortoiseGit,我现在知道它有任何限制。
如有任何建议,我们将不胜感激。
假设:
- 您的工作分支名称为
master
- 工作树是干净的(运行
git status
进行验证(
您可以尝试以下操作:
git checkout -b temp <hash-of-the-fork-commit>
-将创建并签出一个名为temp
的新分支,该分支指向存储库的分叉位置git pull origin master
-将所有远程更改拉入temp
分支git merge master
-将在远程更改之上应用您的更改
因此,您最终会得到master
和具有所有更改的temp
分支。
在验证一切正常后,您可以使用:将master
替换为temp
git branch -d master
-删除master
git checkout -b master
-创建新的master
git branch -d temp
-删除temp
分支