我已经分配了一个git repo(称之为上游),我在我的github上有一个分叉的副本(称之为原点),我的机器上有一个本地的fork副本。我想让我的叉子与原始回购保持同步。
该项目有几个分支机构,我可能会在一天内处理其中任何一个分支机构。我查看了我的本地分支副本,我想用来自upstream / branch的最新更改来更新它,然后将这些更改推送到origin / branch,以便一切都是最新的。
有没有办法设置分支从远程拉出但是推送到原点?我现在可以通过手动将跟踪的分支设置为上游/分支,执行git pull,然后手动将跟踪的分支设置为origin / branch并执行git push来实现。这有效,但看起来很笨拙。有更清洁的方法吗?
答案 0 :(得分:2)
IMO在这种情况下,我更喜欢我的push
和pull
语句是明确的,即使它的输入更多一些。
例如,我不会依赖跟踪分支等内容,而是使用以下形式:
git push|pull <remote> <branch>
示例:
# pull from remote
git pull remote master
# push to origin
git push origin master
这样,我相信我已经从/向正确的位置拉/推。
如果这似乎是太多的输入,你总是可以定义一个别名:
git config --global alias.pullr "pull remote master"
git config --global alias.pusho "push origin master"
并调用这样的别名:
git pullr
git pusho
运行这些git-config
命令后,您可以在~/.gitconfig
文件中修改别名。
答案 1 :(得分:0)
虽然我通常也使用Jonathan的方法,但你完成问题所描述的方式是:
git remote set-url --push REMOTE_NAME URL_OF_ORIGIN_FORK
例如,如果您的遥控器名为&#34;上游&#34;,您会说:
git remote set-url --push upstream URL_OF_ORIGIN_FORK
这会使git push
向&#34; origin&#34;发送更改并且git pull
将从&#34;上游&#34;。