Git remote 同步远程仓库,保持fork出来的项目和原有项目同步

我们在创建一个git工程项目时, 至少可以看到一个名为 origin 的远程库, git 默认使用这个名字来标识你本地工程所对应的远程仓库。

一. 添加远程仓库

一个git工程除了默认的origin 仓库外,还可以为其添加一个新的远程仓库, 可以随意指定一个名字, 运行 git remote add [shortname] [url]

$ git remote add new_repository_name git://github.com/paulboone/ticgit.git
这样就相当与为你本地的git 工程项目配置了两个远程仓库,当然你 本地的git 工程默认是绑定到origin 仓库的。执行$ git remote 命令将会显示所有远程仓库名称:

$ git remote
   origin
   new_repository_name
二. 问题描述: 当我们 在github上fork出一个项目后,如果原有的项目更新了,怎样保持我们fork出来的项目和原有项目保持同步呢,并提交我们的代码呢?

1. 首先添加你从github上fork的源仓库到本地的git工程

  $ git remote add source_repository_name [url]
2. 假设origin仓库和source_repository_name源仓库都有一个分支branch_name,你在该分支上进行开发,将本地修改commit后,在每次Push前做如下操作,即可实现和上游source_repository_name仓库同步:( 需要注意的是在操作step2之前,一定要将checkout到branch_name所指定的branch

   (1)同步源仓库的信息到本地 
      $ git remote update source_repository_name
   (2)将源仓库的信息merge到本地分支: 
      $ git checkout branch_name
      $ git rebase source_repository_name/branch_name

3. $ git push 将最新同步的代码和修改,提交到你的origin仓库

4. Github上提出Push Request即可,将你的origin仓库的所有修改提交到source_repository_name仓库

GitHub常用的开发协同流程为:将别人的仓库fork成自己的origin仓库 → git clone origin仓库到本地 → 本地添加fork源仓库 → 工作前先git remote update下fork源保持代码较新 → coding → push回自己 → github上提出Push Request即可

Git 常见命令一览表:

说明/备注 命令备注
保存更新git add [-i]-i 逐个确认
检查更新git status 
提交更新git commit [-a] -m "<更新说明>"-a 包含增删
-m 说明信息
克隆到本地git clone <git地址> 
远端抓取git fetch 
与本地当前branch合并git merge
抓取并合并 git pull [<远端别名>] [<远端branch>]
相当于 git fetch + git merge
推送到远端 git push [-f] [<远端别名>] [<远端branch>]
-f 强制覆盖
设置一个远端别名git remote add <别名> <git地址>
列出远端git remote -v-v 详细信息
查看远端信息git remote show <远端别名>
重命名远端 git remote rename <远端别名> <新远端别名>
删除远端git remote rm <远端别名>
更新branch列表git remote update [<远端别名>] 
列出branchgit branch [-r] [-a]-r 远端
-a 全部
新建branchgit branch <branch名> 
切换branchgit checkout <branch名> 
创建本地branch对应远端branch git checkout -b <本地branch> -t <远端别名>/<远端branch>
-b 新建branch;-t 绑定远端branch
设置HTTP代理 git config --global http.proxy "<HTTP代理>"
恢复默认
Linux系统编辑 ~/.gitconfig 文件
设置电子邮件 git config --global user.email "<电子邮件>"
设置用户名 git config --global user.name "<用户名>"
查看标签(tag) git tag [--list]
打包、快照(snapshot) git archive [--prefix=<前缀路径>/] -o <文件名及格式> <branch或标签>
--prefix 指定前缀路径;格式可以是 zip, tar
   

  • 0
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值