Fetch specific commit from remote git repo

为君一笑 提交于 2019-12-12 10:53:41

问题


So, what I'm basically trying to do is to pull down a given commit (identified by its SHA) from one remote repo, and then push it to another remote repo as a new branch (whose name I autogenerate). The source repo will vary and these are all one-shot operations, so I don't want to git remote add these remotes and I don't want to create refs/branches for the commits. And I don't want to change the HEADs of any of my local branches.

So, how do I just grab the given remote commit (and any of its parent commits that are new to me) and add it/them to my local git database?

git pull implicitly involves a merge or rebase, so that's out of the question.

I tried git fetch https://github.com/foo/bar.git 7d0969daba1fdf9d5bb9bc9a2847fd1bc1c7e426
but that just leads to
error: no such remote ref 12819ad8e10e5906df5352d7d8fec1fceb1f3afc
(and yes, I verified that that commit SHA exists on that remote; looks like git doesn't accept a SHA here anyway).

I mean, I guess I could come up with a single arbitrary local branch name to always pull the commits down into, and then delete that branch after every push, but that's seems inelegant...


回答1:


Git does not allow you to fetch by SHA by design. It doesn't seem like there are any plans to enable that either based on previous conversations on the developers mailing list

You will have to have a reference on the remote in order to be able to fetch. You should be able to auto-generate this part I would imagine, since you have to have a mechanism to pass the remote and sha back and forth already.




回答2:


Use git fetch to get all commits from your origin repository. Then, create a branch on the desired commit

git branch theBranch 7d0969dab

Now, you can push this branch to the second repo

git push https://github.com/secondRepo/bar.git theBranch:theRemoteBranchNameYouWant


来源:https://stackoverflow.com/questions/26905446/fetch-specific-commit-from-remote-git-repo

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!