源项目 -> fork -> 本地 (如何把源项目的代码合并到本地然后推送给fork)

  1. git remote -v
  2. git remote add 别名 地址
  3. git fetch 别名
  4. git merge  别名/分支

第一步:命令行进入到本地.git 所在的目录,查看remote 信息 ,只有 fork

>git remote -v
origin  https://github.com/gcontini/xades4j.git (fetch)
origin  https://github.com/gcontini/xades4j.git (push)

第二步:添加一个remote ,别名是 upstream ,地址是源项目地址

>git remote add upstream https://github.com/luisgoncalves/xades4j.git

执行完毕之后 .gitconfig 文件中增加了三行

[remote "upstream"]
	url = https://github.com/luisgoncalves/xades4j.git
	fetch = +refs/heads/*:refs/remotes/upstream/*

第三步:查看remote 信息 ,有两个,一个是origin(本地项目从哪来的),另一个是upstream(最原始的项目)

>git remote -v
origin  https://github.com/gcontini/xades4j.git (fetch)
origin  https://github.com/gcontini/xades4j.git (push)
upstream        https://github.com/luisgoncalves/xades4j.git (fetch)
upstream        https://github.com/luisgoncalves/xades4j.git (push)

第四步:获取原项目的信息

>git fetch upstream
remote: Counting objects: 22, done.
remote: Total 22 (delta 14), reused 14 (delta 14), pack-reused 8
Unpacking objects: 100% (22/22), done.
From https://github.com/luisgoncalves/xades4j
 * [new branch]      gh-pages   -> upstream/gh-pages
 * [new branch]      master     -> upstream/master

执行完毕之后 .git efs emotes 文件夹下增加了 upstream 文件夹,其中包含两个分支文件

└─upstream
        gh-pages
        master

第五步:合并分支(合并remotesupstreammaster 文件中的内容到本地)

>git merge upstream/master
Auto-merging src/test/java/xades4j/verification/XadesVerifierImplTest.java
CONFLICT (content): Merge conflict in src/test/java/xades4j/verification/XadesVerifierImplTest.java
Automatic merge failed; fix conflicts and then commit the result.

第六步: 处理冲突文件

第七步: push到 fork

备注:

查看帮助信息

-h 简要帮助信息

--help 通过浏览器打开文档,显示详细信息

>git remote -h
usage: git remote [-v | --verbose]
   or: git remote add [-t <branch>] [-m <master>] [-f] [--tags | --no-tags] [--mirror=<fetch|push>] <name> <url>
   or: git remote rename <old> <new>
   or: git remote remove <name>
   or: git remote set-head <name> (-a | --auto | -d | --delete | <branch>)
   or: git remote [-v | --verbose] show [-n] <name>
   or: git remote prune [-n | --dry-run] <name>
   or: git remote [-v | --verbose] update [-p | --prune] [(<group> | <remote>)...]
   or: git remote set-branches [--add] <name> <branch>...
   or: git remote get-url [--push] [--all] <name>
   or: git remote set-url [--push] <name> <newurl> [<oldurl>]
   or: git remote set-url --add <name> <newurl>
   or: git remote set-url --delete <name> <url>

    -v, --verbose         be verbose; must be placed before a subcommand
remote -h
>git fetch -h
usage: git fetch [<options>] [<repository> [<refspec>...]]
   or: git fetch [<options>] <group>
   or: git fetch --multiple [<options>] [(<repository> | <group>)...]
   or: git fetch --all [<options>]

    -v, --verbose         be more verbose
    -q, --quiet           be more quiet
    --all                 fetch from all remotes
    -a, --append          append to .git/FETCH_HEAD instead of overwriting
    --upload-pack <path>  path to upload pack on remote end
    -f, --force           force overwrite of local branch
    -m, --multiple        fetch from multiple remotes
    -t, --tags            fetch all tags and associated objects
    -n                    do not fetch all tags (--no-tags)
    -j, --jobs <n>        number of submodules fetched in parallel
    -p, --prune           prune remote-tracking branches no longer on remote
    --recurse-submodules[=<on-demand>]
                          control recursive fetching of submodules
    --dry-run             dry run
    -k, --keep            keep downloaded pack
    -u, --update-head-ok  allow updating of HEAD ref
    --progress            force progress reporting
    --depth <depth>       deepen history of shallow clone
    --shallow-since <time>
                          deepen history of shallow repository based on time
    --shallow-exclude <revision>
                          deepen history of shallow clone, excluding rev
    --deepen <n>          deepen history of shallow clone
    --unshallow           convert to a complete repository
    --update-shallow      accept refs that update .git/shallow
    --refmap <refmap>     specify fetch refmap
    -4, --ipv4            use IPv4 addresses only
    -6, --ipv6            use IPv6 addresses only
fetch -h
原文地址:https://www.cnblogs.com/zno2/p/6994481.html