GitLab本地、遠程更新已經fork的項目


單用IDEA無法做到,必須配合使用Git命令行才能做到,而且是先從原作者項目更新本地庫,再從本地庫push到自己遠程fork項目,非常坑逼。

1.到項目clone的根目錄右鍵Git Bash,先查看遠程源,一般只有你自己fork項目的源,沒有原作者的,需要添加遠程源:


Administrator@admin-PC MINGW64 /e/git_projects/sunfield-microframe-service (master)
$ git remote -v
origin http://172.16.175.36:180/baigang/sunfield-microframe-service.git (fetch)
origin http://172.16.175.36:180/baigang/sunfield-microframe-service.git (push)

Administrator@admin-PC MINGW64 /e/git_projects/sunfield-microframe-service (master)
$ git remote add upstream ssh://git@172.16.175.36:4422/jiaoma/sunfield-microframe-service.git

Administrator@admin-PC MINGW64 /e/git_projects/sunfield-microframe-service (master)
$ git remote -v
origin http://172.16.175.36:180/baigang/sunfield-microframe-service.git (fetch)
origin http://172.16.175.36:180/baigang/sunfield-microframe-service.git (push)
upstream ssh://git@172.16.175.36:4422/jiaoma/sunfield-microframe-service.git (fetch)
upstream ssh://git@172.16.175.36:4422/jiaoma/sunfield-microframe-service.git (push)

Administrator@admin-PC MINGW64 /e/git_projects/sunfield-microframe-service (master)
$ git fetch upstream
The authenticity of host '[172.16.175.36]:4422 ([172.16.175.36]:4422)' can't beestablished.
ECDSA key fingerprint is SHA256:hFUMVxu5yYzhamirMDGSsvo3KbgbsVBQ3ZPTOBUIdqs.
Are you sure you want to continue connecting (yes/no)?
Host key verification failed.
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.

 

2.這里添加了原作者ssh協議的源,因為沒有本機證書,無法連接成功,所以需要改為添加http協議源,這里本公司GitLab服務器需要帶上180端口

Administrator@admin-PC MINGW64 /e/git_projects/sunfield-microframe-service (master)
$ git remote add upstream http://172.16.175.36:180/jiaoma/sunfield-microframe-service.git
fatal: remote upstream already exists.

Administrator@admin-PC MINGW64 /e/git_projects/sunfield-microframe-service (master)
$ git remote remove upstream

Administrator@admin-PC MINGW64 /e/git_projects/sunfield-microframe-service (master)
$ git remote add upstream http://172.16.175.36:180/jiaoma/sunfield-microframe-service.git

Administrator@admin-PC MINGW64 /e/git_projects/sunfield-microframe-service (master)
$ git remote -v
origin http://172.16.175.36:180/baigang/sunfield-microframe-service.git (fetch)
origin http://172.16.175.36:180/baigang/sunfield-microframe-service.git (push)
upstream http://172.16.175.36:180/jiaoma/sunfield-microframe-service.git(fetch)
upstream http://172.16.175.36:180/jiaoma/sunfield-microframe-service.git(push)

這里需要先使用git remote remove命令移除此前錯誤添加的同名源(其實起別的名也可以,fetch時從正確名字的源獲取即可)

 

3.從添加的原作者源fetch到本地倉庫,合並到本地倉庫:

Administrator@admin-PC MINGW64 /e/git_projects/sunfield-microframe-service (master)
$ git fetch upstream
remote: Counting objects: 103, done.
remote: Compressing objects: 100% (65/65), done.
remote: Total 103 (delta 24), reused 30 (delta 4)
Receiving objects: 100% (103/103), 12.50 KiB | 914.00 KiB/s, done.
Resolving deltas: 100% (24/24), completed with 6 local objects.
From http://172.16.175.36:180/jiaoma/sunfield-microframe-service
* [new branch] master -> upstream/master

Administrator@admin-PC MINGW64 /e/git_projects/sunfield-microframe-service (master)
$ git merge upstream/master
Updating 2970d82..27ca203
Fast-forward
pom.xml | 58 ++------
.../microframe/common/config/RedisConfig.java | 52 +++++++
.../microframe/common/redis/RedisBaseTemplate.java | 139 ++++++++++++++++++
.../microframe/common/redis/RedisHashTemplate.java | 157 +++++++++++++++++++++
.../microframe/common/redis/RedisListTemplate.java | 130 +++++++++++++++++
.../microframe/common/redis/RedisSetTemplate.java | 110 +++++++++++++++
.../microframe/provider/MUsersSqlProvider.java | 29 ++--
.../com/sunfield/microframe/rest/MUsersRest.java | 82 ++++++++++-
.../sunfield/microframe/service/MUsersService.java | 73 ++++++++++
src/main/resources/application.properties | 52 ++++---
10 files changed, 804 insertions(+), 78 deletions(-)
create mode 100644 src/main/java/com/sunfield/microframe/common/config/RedisConfig.java
create mode 100644 src/main/java/com/sunfield/microframe/common/redis/RedisBaseTemplate.java
create mode 100644 src/main/java/com/sunfield/microframe/common/redis/RedisHashTemplate.java
create mode 100644 src/main/java/com/sunfield/microframe/common/redis/RedisListTemplate.java
create mode 100644 src/main/java/com/sunfield/microframe/common/redis/RedisSetTemplate.java
create mode 100644 src/main/java/com/sunfield/microframe/service/MUsersService.java

 

4.把更新push到自己遠程fork庫:

Administrator@admin-PC MINGW64 /e/git_projects/sunfield-microframe-service (master)
$ git push
Enumerating objects: 119, done.
Counting objects: 100% (119/119), done.
Delta compression using up to 8 threads
Compressing objects: 100% (45/45), done.
Writing objects: 100% (103/103), 12.50 KiB | 2.50 MiB/s, done.
Total 103 (delta 24), reused 103 (delta 24)
remote: Resolving deltas: 100% (24/24), completed with 6 local objects.
To http://172.16.175.36:180/baigang/sunfield-microframe-service.git
2970d82..27ca203 master -> master

 

注意這里應push到自己的遠程庫,而不是原作者的!

也可使用命令:

git push origin master

這樣成功更新了自己本地庫、遠程fork庫,完全不需要IDEA操作了。

 

參考博客:

https://blog.csdn.net/define_LIN/article/details/81044421

https://www.jianshu.com/p/83be892368d8

https://blog.csdn.net/qq_38835878/article/details/81195400

https://www.zhihu.com/question/20393785/answer/30725725

https://www.cnblogs.com/dinphy/p/6409132.html

切換分支和push到fork庫:

https://www.jianshu.com/p/29775d91f536

刪除遠程源:

https://www.cnblogs.com/BHfeimao/p/6496877.html

 


免責聲明!

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



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