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>