我使用以下方法在本地下载了一个git存储库:
git clone git://git.webkit.org/WebKit.git WebKit
我正在使用自己的实验(无意将更改推回到webkit.org)。 所以我做了一些修改然后'git commit'。
但是我想知道更新我的Webkit存储库的最佳方式是什么(因为我可能进行了远程更改/修改的文件更改)。
我做了一些挖掘。 git有不同的方法吗?
1. git pull
2. git pull --rebase
哪一个对我的情况最好?
谢谢。
答案 0 :(得分:0)
提交自己的更改的最佳方法是将它们提交到单独的分支中。然后,您可以合并或重新定义来自master或任何其他已发布分支的更新。
通过保持master分支清除你的更改,如果你在master分支上git pull或git pull --rebase并不重要。 git pull命令所做的所有合并最终都会被称为“快进合并”。这只是意味着没有任何东西可以合并,所以它是主分支到你从遥控器获得的最新提交的简单指针移动。
希望这有帮助,
汽
答案 1 :(得分:0)
您应该尽量避免git pull
,并使用git fetch
+ git merge
。 This blog有更多信息
答案 2 :(得分:0)
git pull
命令将从源(默认为origin
)获取最新更改,并立即尝试将它们与您当前分支中的代码合并。如果没有重叠,那将是一件轻而易举的事。
git pull --rebase
也会这样做,除非它会尝试将您的更改应用到传入流的末尾,因此它们看起来像一个简单的进程。如果您从两种方法中查看历史记录(git log
),您只会注意到差异。 (有关演示,请参阅this page。)
如果您担心您的更改与来自原点的更改重叠并希望在尝试合并它们之前进行“预览”,那么您可以使用命令git fetch origin
来关闭所有最新更改进入一个名为'origin / master'的隐藏本地分支 - 这与你的'master'分支不同。然后,您可以选择git merge origin/master
浏览它(请注意,您将看到一条警告消息,指出这不是“真正的”分支,但它仍然有效),稍后将其与您的代码合并(第一个{ {1}}如果你还没有,那么git checkout master
)。
(正如adymitruk所说,最简单的方法是在单独的分支(git merge origin/master
)中进行更改,然后获取并合并或拉取。但如果您已经在本地主分支上工作,上述命令将帮助你。)