3

我在 bitbucket 中创建了一个空存储库,并将其克隆到目录dwm中。然后我从suckless.org 中提取了dwm 的代码并用它更新了我的自定义repo:

git pull http://git.suckless.org/dwm
git push -u origin master --tags

我做了一些更改,现在我想为suckless.org 进行其他提交做准备;我想将他们的更改与我的提交合并。这行得通吗?

git checkout -b new
git fetch http://git.suckless.org/dwm
git checkout master
git merge new
git branch -d merge

我刚刚创建了存储库并下载了今天的最新版本,所以没有来自suckless.org 的任何新提交来测试它,但我希望能够积极主动并提前弄清楚。这个程序会起作用吗?例如,如果我已经修改dwm.c并且开发人员也进行了更改,那么 git 是否应该找出差异并执行合并?

我不想将我的更改推回开源项目;我只是在修改项目的副本以在我的机器上使用,并将该本地副本及其提交(以及开发人员的提交)存储在 bitbucket 存储库中。

4

1 回答 1

4

如果您想将这些更改拉入您的new分支,那么我建议您这样做:

git remote add suckless http://git.suckless.org/dwm

添加遥控器以供将来参考,因此您不必继续输入该 URL。

git checkout -b new
git pull suckless master

创建一个名为new并切换到它的新分支。-b如果此分支已存在,则不需要该选项。从suckless master分支中提取更改并将它们添加到此分支。

fetch命令仅从远程存储库中获取最新更新,并且不会应用它们。您需要pull这些更改才能应用它们。

git checkout master
git merge new

切换回 master 分支并将分支合并newmaster分支中。

git branch -d new

删除new不需要的分支。

于 2013-10-13T22:05:38.017 回答