문제

Use Case: I have some repo on GitHub, someone forked it and added new feature and initiated pull request. I can't automatically merge it because there are some minor problems I would like to fix first.

It's one-time activity I'll never need this remote repository, so I don't want to create local remote branch.

Basically I would like to do:

  1. copy files from remote repository and rewrite my own (without any git-related information).
  2. see difference with my current head.
  3. fix something and commit it.

How to do that?

git checkout git://github.com/xxx/xxx.git doesn't works at all (fail with error)

git fetch git://github.com/xxx/xxx.git works but doesn't update anything

도움이 되었습니까?

해결책

You want to use FETCH_HEAD.

whenever you run git fetch ... a magic reference called FETCH_HEAD is created.

Try for example:

git fetch git://github.com/xxx/xxx.git branch_name && git merge FETCH_HEAD

다른 팁

For any Git server:

git fetch git://host.com/path/to/repo.git remote-branch-name:local-branch-name
git checkout local-branch-name

Another neat method (at least on/from Github) is fetching like this:

git fetch repo pull/7324/head:pr-7324

Where:

repo points to the remote repo, e.g. git://github.com/xxx/xxx.git.

pull/7324/head is the remote pull request.

pr-7324 is the local pull-request branch.

Then you can use the local PR branch to do whatever you want with it.

Source: adapted from this discussion.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top