Github進行fork后如何與原倉庫同步


問題場景:

新公司要求所有的代碼提交都要先通過自己的庫提交到主repo上去,所以先在gitlab網頁上fork出一個自己的庫,在本地修改完代碼后提交到遠程自己庫上,然后在gitlab網頁上發起一個merge request請求,然后等待主repo主人review,同意之后合入。

整體思路如下:

在自己的本地添加主repo為上游代碼庫,注意只是配置原倉庫的路徑,並沒有真正clone原倉庫,

然后將遠程主repo同步到自己本地的機器,

然后本地的機器再push到自己的遠程的fork庫

所有的操作都要在本地命令行完成


haima@haima-PC:~/go/src/gin-vue-admin/QMPlusServer$ git remote -v //查看關聯分支
origin  git@github.com:haimait/gin-vue-admin.git (fetch)
origin  git@github.com:haimait/gin-vue-admin.git (push)
haima@haima-PC:~/go/src/gin-vue-admin/QMPlusServer$ git remote add upstream https://github.com/piexlmax/gin-vue-admin.git //關聯源分支,並啟別名為upstream
haima@haima-PC:~/go/src/gin-vue-admin/QMPlusServer$ git remote -v
origin  git@github.com:haimait/gin-vue-admin.git (fetch)
origin  git@github.com:haimait/gin-vue-admin.git (push)
upstream        https://github.com/piexlmax/gin-vue-admin.git (fetch)
upstream        https://github.com/piexlmax/gin-vue-admin.git (push)
haima@haima-PC:~/go/src/gin-vue-admin/QMPlusServer$ git fetch upstream //摘取關聯的源分支最新代碼
來自 https://github.com/piexlmax/gin-vue-admin
 * [新分支]          feature/gin-vue-admin_v1.0.0 -> upstream/feature/gin-vue-admin_v1.0.0
 * [新分支]          feature/gin-vue-admin_v2.0.0 -> upstream/feature/gin-vue-admin_v2.0.0
 * [新分支]          master                       -> upstream/master
 * [新分支]          release/gin-vue-admin_v1.0.0 -> upstream/release/gin-vue-admin_v1.0.0
haima@haima-PC:~/go/src/gin-vue-admin/QMPlusServer$ git branch -a //查看本地和關聯遠程的所有的支支
  haima_edit_admin_config
* master
  remotes/origin/HEAD -> origin/master
  remotes/origin/gin-vue-admin-develop
  remotes/origin/haima_edit_admin_config
  remotes/origin/master
  remotes/origin/micro-gin-vue-admin
  remotes/upstream/feature/gin-vue-admin_v1.0.0
  remotes/upstream/feature/gin-vue-admin_v2.0.0
  remotes/upstream/master
  remotes/upstream/release/gin-vue-admin_v1.0.0

haima@haima-PC:~/go/src/gin-vue-admin/QMPlusServer$ git status
位於分支 master
您的分支與上游分支 'origin/master' 一致。
尚未暫存以備提交的變更:
  (使用 "git add <文件>..." 更新要提交的內容)
  (使用 "git checkout -- <文件>..." 丟棄工作區的改動)

        修改:     .gitignore
        修改:     static/config/config.json

haima@haima-PC:~/go/src/gin-vue-admin/QMPlusServer$ git add .
haima@haima-PC:~/go/src/gin-vue-admin/QMPlusServer$ git commit -m"edit config.json"

haima@haima-PC:~/go/src/gin-vue-admin/QMPlusServer$ git merge upstream/master //要主干上合並源代碼的主干
已經是最新的。
haima@haima-PC:~/go/src/gin-vue-admin/QMPlusServer$ git add .
haima@haima-PC:~/go/src/gin-vue-admin/QMPlusServer$ git commit -m"merge upstream master"
haima@haima-PC:~/go/src/gin-vue-admin/QMPlusServer$ git status
位於分支 master
您的分支與上游分支 'origin/master' 一致。
haima@haima-PC:~/go/src/gin-vue-admin/QMPlusServer$ git pull //拉取自己線上倉庫里的代碼
已經是最新的。
haima@haima-PC:~/go/src/gin-vue-admin/QMPlusServer$ git push //推送代碼到自己的倉庫里
Total 0 (delta 0), reused 0 (delta 0)
To github.com:haimait/gin-vue-admin.git
   b75d839..c0c1a2c  master -> master

如果想斷開遠程分支

haima@haima-PC:~/go/src/gin-vue-admin/QMPlusServer$ git remote rm upstream

推送代碼到自己的倉庫里后,就可以到線上New pull request請求合並代碼到源倉庫里了,這時就等待源倉庫里的管理員合並代碼了.

其實合並源倉庫的master分支 可以合並成一條命令

git pull upstream master

第一個參數pustream 表示遠程主repo

第二個參數master 表示自己fork庫的master分支

這個是公司文檔上寫的,並不是從網上找來的

為了說清楚這個問題,親自做了一張圖

https://blog.csdn.net/matrix_google/article/details/80676034?depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromBaidu-1&utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromBaidu-1

切換到遠程dev分支上去進行開發

git clone新項目后如何拉取其他分支代碼到本地

1、git clone git@git.n.xxx.com:xxx/xxx.git

2、git fetch origin dev 命令來把遠程dev分支拉到本地

3、checkout -b dev origin/dev 在本地創建分支dev並切換到該分支

4、git pull origin dev 就可以把遠程dev分支上的內容都拉取到本地了

注:當本地代碼是dev分支時,需要先 git pull origin dev 更新遠程分支代碼到本地,然后再git pull (即拉取遠程master分支更新到本地),否則會有沖突。

https://blog.csdn.net/baidu_38027860/article/details/83303602


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM