git修改/添加/刪除遠程倉庫


git修改/添加/刪除遠程倉庫

原文鏈接:https://blog.csdn.net/zhezhebie/article/details/78761417


修改遠程倉庫地址:
git remote set-url origin <remote-url>

倉庫路徑查詢查詢:

git remote -v

添加遠程倉庫:

git remote add origin <你的項目地址> //注:項目地址形式為:https://gitee.com/xxx/xxx.git或者 git@gitee.com:xxx/xxx.git

刪除指定的遠程倉庫:

git remote rm origin

本地初始化一個項目
首先,你需要執行下面兩條命令,作為 git 的基礎配置,作用是告訴 git 你是誰,你輸入的信息將出現在你創建的提交中。

git config --global user.name "你的名字或昵稱"
git config --global user.email "你的郵箱"


然后在你的需要初始化版本庫的文件夾中執行:

git init
git remote add origin <你的項目地址> //注:項目地址形式

為:http://git.oschina.net/xxx/xxx.git或者 git@git.oschina.net:xxx/xxx.git
這樣就完成了一次版本你的初始化。

如果你想克隆一個項目,只需要執行:

git clone <項目地址>

完成第一次提交
進入你已經初始化好的或者克隆項目的目錄,然后執行:

git pull origin master

<這里需要修改/添加文件,否則與原文件相比就沒有變動>

git add .
git commit -m "第一次提交"
git push origin master

然后如果需要賬號密碼的話就輸入賬號密碼,這樣就完成了一次提交。

此時,你可以在你的個人面板、項目主頁查看到你的提交記錄,例如:http://git.oschina.net/oschina/git-osc/commit/f3dd1c5bae48fa4244e2595a39e750e5606dd9be

按照本文檔新建的項目時,在碼雲平台倉庫上已經存在 readme 文件,故在提交時可能會存在沖突,這時您需要選擇的是保留線上的文件或者舍棄線上的文件,如果您舍棄線上的文件,則在推送時選擇強制推送,強制推送需要執行下面的命令:

git push origin master -f

如果您選擇保留線上的 readme 文件,則需要先執行:

git pull origin master

修改gitignore之后所作的操作:

git rm --cached .gitignore
git add .gitignore
git commit -m 'update .gitignore'

使用遠程代碼強制覆蓋本地代碼:

git pull -f

遠程分支刪除,重命名
刪除遠程分支
在Git v1.7.0 之后,可以使用這種語法刪除遠程分支:

$ git push origin --delete <branchName>

刪除遠程tag
git push origin --delete tag <tagname>

否則,可以使用這種語法,推送一個空分支到遠程分支,其實就相當於刪除遠程分支:

git push origin :<branchName>

這是刪除tag的方法,推送一個空tag到遠程tag:

git tag -d <tagname>
git push origin :refs/tags/<tagname>

兩種語法作用完全相同。

刪除不存在對應遠程分支的本地分支
假設這樣一種情況:

我創建了本地分支b1並pull到遠程分支 origin/b1;
其他人在本地使用fetch或pull創建了本地的b1分支;
我刪除了 origin/b1 遠程分支;
其他人再次執行fetch或者pull並不會刪除這個他們本地的 b1 分支,運行 git branch -a 也不能看出這個branch被刪除了,如何處理?
使用下面的代碼查看b1的狀態:

$ git remote show origin
* remote origin
Fetch URL: git@github.com:xxx/xxx.git
Push URL: git@github.com:xxx/xxx.git
HEAD branch: master
Remote branches:
master tracked
refs/remotes/origin/b1 stale (use 'git remote prune' to remove)
Local branch configured for 'git pull':
master merges with remote master
Local ref configured for 'git push':
master pushes to master (up to date)

這時候能夠看到b1是stale的,使用 git remote prune origin 可以將其從本地版本庫中去除。

更簡單的方法是使用這個命令,它在fetch之后刪除掉沒有與遠程分支對應的本地分支:

git fetch -p

重命名遠程分支
在git中重命名遠程分支,其實就是先刪除遠程分支,然后重命名本地分支,再重新提交一個遠程分支。

例如下面的例子中,我需要把 devel 分支重命名為 develop 分支:

$ git branch -av
* devel 752bb84 Merge pull request #158 from Gwill/devel
master 53b27b8 Merge pull request #138 from tdlrobin/master
zrong 2ae98d8 modify CCFileUtils, export getFileData
remotes/origin/HEAD -> origin/master
remotes/origin/add_build_script d4a8c4f Merge branch 'master' into add_build_script
remotes/origin/devel 752bb84 Merge pull request #158 from Gwill/devel
remotes/origin/devel_qt51 62208f1 update .gitignore
remotes/origin/master 53b27b8 Merge pull request #138 from tdlrobin/master
remotes/origin/zrong 2ae98d8 modify CCFileUtils, export getFileData

刪除遠程分支:
$ git push --delete origin devel
To git@github.com:zrong/quick-cocos2d-x.git
- [deleted] devel

重命名本地分支:
git branch -m devel develop

推送本地分支:

$ git push origin develop
Counting objects: 92, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (48/48), done.
Writing objects: 100% (58/58), 1.38 MiB, done.
Total 58 (delta 34), reused 12 (delta 5)
To git@github.com:zrong/quick-cocos2d-x.git
* [new branch] develop -> develop

然而,在 github 上操作的時候,我在刪除遠程分支時碰到這個錯誤:

$ git push --delete origin devel

remote: error: refusing to delete the current branch: refs/heads/devel
To git@github.com:zrong/quick-cocos2d-x.git
! [remote rejected] devel (deletion of the current branch prohibited)
error: failed to push some refs to 'git@github.com:zrong/quick-cocos2d-x.git'

這是由於在 github 中,devel 是項目的默認分支。要解決此問題,這樣操作:

進入 github 中該項目的 Settings 頁面;
設置 Default Branch 為其他的分支(例如 master);
重新執行刪除遠程分支命令。
把本地tag推送到遠程

git push --tags

獲取遠程tag
git fetch origin tag <tagname>


免責聲明!

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



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