源项目 -> fork -> 本地 (如何把源项目的代码合并到本地然后推送给fork)
- git remote -v
- git remote add 别名 地址
- git fetch 别名
- 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
执行完毕之后 \.git\config 文件中增加了三行
[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\refs\remotes\ 文件夹下增加了 upstream 文件夹,其中包含两个分支文件
└─upstream gh-pages master
第五步:合并分支(合并remotes\upstream\master 文件中的内容到本地)
>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
>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