Git fork 上游仓库

Author Avatar
Rzk 6月 08, 2020
  • 在其它设备中阅读本文章

GitHub上fork项目后怎么跟上游仓库保持更新。

前言

在GitHub(大型同性交友网站)上我们可以找到大量有趣、有用的Repository,有的时候我们会使用fork工能,但是有时候你想让fork下的仓库跟上游仓库保持更新,那么就需要一些操作。

详细步骤

查看仓库状态

首先cd到项目目录

git remote -v # 您的fork的当前配置的远程仓库。

如下图所示,即没有设置上游仓库
remote -v.png

设置上游仓库
git remote add upstream # https.gitxxx  指定上游仓库

重复1步骤查看仓库状态
结果如下
remote add upstream.png

抓取上游跟新到本地
git fetch upstream # 抓取上游仓库的更新到本地
切换分支

列出分支列表

git branch # 列出当前有多少分支  按q退出编辑模式

切换分支

git checkout master # 切换到 master 主分支
合并上游更新
git merge upstream/master # 合并上游更新
推送合并后的更新
git push origin master # 推送合并后的更新

END


ps

# Git 常用命令集
git clone git://github.com/limbopro/Script.git # 检出仓库
git remote -v # 查看远程仓库 刚刚已经用过了 
git remote add [name] [url] # 添加远程仓库 刚刚已经用过了 
git remote rm [name] # 删除远程仓库
git remote set-url --push [name] [newUrl] # 修改远程仓库
git pull [remoteName] [localBranchName] # 拉取远程仓库 与fetch 有所区别 
git push [remoteName] [localBranchName] # 推送远程仓库

git branch # 查看本地分支 一般默认为 master 
git branch -r # 查看远程分支
git branch [name] # 创建本地分支 注意新分支创建后不会自动切换为当前分支 
git checkout [name] # 切换分支
git checkout -b [name] # 创建新分支并立即切换到新分支
git branch -d [name] # 删除分支 -d选项只能删除已经参与了合并的分支,对于未有合并的分支是无法删除的。如果想强制删除一个分支,可以使用-D选项
git merge [name] # 合并分支 将名称为[name]的分支与当前分支合并

git status # 查看当前状态 同步上游仓库更新时会常用到
git commit # 提交 合并更新后,提交到远程仓库会用到
git branch -a # 查看所有的分支
git branch -r # 查看远程所有分支

# 查看、添加、提交、删除、找回,重置修改文件
git help <command> # 显示command的help
git show # 显示某次提交的内容 git show $id
git co -- <file> # 抛弃工作区修改
git co . # 抛弃工作区修改
git add <file> # 将工作文件修改提交到本地暂存区
git add . # 将所有修改过的工作文件提交暂存区
git rm <file> # 从版本库中删除文件
git rm <file> --cached # 从版本库中删除文件,但不删除文件
git reset <file> # 从暂存区恢复到工作文件
git reset -- . # 从暂存区恢复到工作文件
git reset --hard # 恢复最近一次提交过的状态,即放弃上次提交后的所有本次修改
git ci --amend # 修改最后一次提交记录
git revert <$id> # 恢复某次提交的状态,恢复动作本身也创建次提交对象
git revert HEAD # 恢复最后一次提交的状态
# 查看文件diff
git diff <file> # 比较当前文件和暂存区文件差异 git diff
git diff <id1> <id2> # 比较两次提交之间的差异