Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
195 views
in Technique[技术] by (71.8m points)

git - Will remote URL for fetch and push be different?

git remote --v show remote info

origin  https://github.com/test/testing-iOS.git (fetch)
origin  https://github.com/test/testing-iOS.git (push)

It shows that both fetch and push are using the same remote URL.

Question:

When will (if ever) remote URL for fetch and push be different?

What commands can you use to change remote URL for fetch or push separately?

question from:https://stackoverflow.com/questions/31747072/will-remote-url-for-fetch-and-push-be-different

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

Yes (using different remote), and that is why Git 2.5 introduces a new ref shorthand @{push}.
See "Viewing Unpushed Git Commits"

What commands can you use to change remote URL for fetch or push separately?

You need a separate remote:

git remote add myfork /url/for/my/fork
git config remote.pushdefault myfork

The GitHub blog post "Improved support for triangular workflows" illustrates the use of @{push}:

https://cloud.githubusercontent.com/assets/1319791/8943755/5dcdcae4-354a-11e5-9f82-915914fad4f7.png

See what commits you've added to your current branch since the last push:

git clone https://github.com/YOUR-USERNAME/atom
cd atom
git config remote.pushdefault origin
git config push.default current
  • remote.pushdefault specifies where to push (to which remote repo).
  • push.default specifies what to push (what refspec), when no refspec is explicitly given.
    current, in that latter case, means "push the current branch to update a branch with the same name on the receiving end."

The following branch will fetch from one url, push to another:

git remote add upstream https://github.com/atom/atom
git fetch upstream
git checkout -b whizbang upstream/master

(Here the whizbang branches tracks upstream/master, but pushes to origin/whizbang)

git log @{push}..

This uses the new @{push} notation, which denotes the current value of the remote-tracking branch that the current branch would be pushed to by git push, namely origin/whizbang.
You can also refer to the push destination of an arbitrary branch using the notation whizbang@{push}.


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...