創(chuàng)新互聯(lián)自成立以來,一直致力于為企業(yè)提供從網(wǎng)站策劃、網(wǎng)站設計、網(wǎng)站制作、網(wǎng)站設計、電子商務、網(wǎng)站推廣、網(wǎng)站優(yōu)化到為企業(yè)提供個性化軟件開發(fā)等基于互聯(lián)網(wǎng)的全面整合營銷服務。公司擁有豐富的網(wǎng)站建設和互聯(lián)網(wǎng)應用系統(tǒng)開發(fā)管理經(jīng)驗、成熟的應用系統(tǒng)解決方案、優(yōu)秀的網(wǎng)站開發(fā)工程師團隊及專業(yè)的網(wǎng)站設計師團隊。
開源許可證:
對于沒有本地庫的小伙伴可以安裝好Git工具(詳見:https://git-scm.com/book/zh/v2/%E8%B5%B7%E6%AD%A5-%E5%AE%89%E8%A3%85-Git)
在本地選擇一個文件夾,右鍵 》 Git Bash Here 進入指令窗口。
使用git init初始化本地庫:$ git init # 初始化本地git庫生成.git版本管理文件。
注意:記住所有的git指令都必須在含有.git(隱藏文件)的文件夾下執(zhí)行,否則git指令會無效。
一般步驟(創(chuàng)建Gitee倉庫時沒有文件):
$ git remote add 倉庫別名 倉庫的https地址
$ git push 倉庫別名 分支名
對于創(chuàng)建倉庫時有文件且有多個分支時:
$ git remote add 倉庫別名 倉庫的https地址 # 給倉庫起別名
$ git pull 倉庫別名 分支名 --allow-unrelated-histories # 由于倉庫存在文件需要先push分支然后再拉代碼,--allow...表示強制合并分支,對于多個分支適用。
$ git push 倉庫別名 分支名 # 將本地庫發(fā)送到gitee的倉庫,第一次一般需要登錄。
之后,就可以正常地用 git push 和 git pull 推送了!
如果連接時登錄失敗可以刪除git 認證賬戶,重新remote :
如果在使用命令 git remote add 時報錯:
$ git remote add origin git@gitee.com:imnoob/runoob-test.git
fatal: remote origin already exists.
這說明本地庫已經(jīng)關聯(lián)了一個名叫 origin 的遠程庫,此時,可以先用 git remote -v 查看遠程庫信息:
$ git remote -v
origin git@github.com:tianqixin/runoob.git (fetch)
origin git@github.com:tianqixin/runoob.git (push)
可以看到,本地庫已經(jīng)關聯(lián)了 origin 的遠程庫,并且,該遠程庫指向 GitHub。
我們可以刪除已有的 GitHub 遠程庫:
$ git remote rm origin
再關聯(lián) Gitee 的遠程庫(注意路徑中需要填寫正確的用戶名):
$ git remote add origin git@gitee.com:imnoob/runoob-test.git
此時,我們再查看遠程庫信息:
$ git remote -v
origin git@gitee.com:imnoob/runoob-test.git (fetch)
origin git@gitee.com:imnoob/runoob-test.git (push)
現(xiàn)在可以看到,origin 已經(jīng)被關聯(lián)到 Gitee 的遠程庫了。
通過 git push 命令就可以把本地庫推送到 Gitee 上。
有的小伙伴又要問了,一個本地庫能不能既關聯(lián) GitHub,又關聯(lián) Gitee 呢?
答案是肯定的,因為 git 本身是分布式版本控制系統(tǒng),可以同步到另外一個遠程庫,當然也可以同步到另外兩個遠程庫。
使用多個遠程庫時,我們要注意,git 給遠程庫起的默認名稱是 origin,如果有多個遠程庫,我們需要用不同的名稱來標識不同的遠程庫。
仍然以 runoob-test 本地庫為例,我們先刪除已關聯(lián)的名為 origin 的遠程庫:
$ git remote rm origin
然后,先關聯(lián) GitHub 的遠程庫:
$ git remote add github git@github.com:tianqixin/runoob-git-test.git
注意,遠程庫的名稱叫 github,不叫 origin 了。
接著,再關聯(lián) Gitee 的遠程庫:
$ git remote add gitee git@gitee.com:imnoob/runoob-test.git
同樣注意,遠程庫的名稱叫 gitee,不叫 origin。
現(xiàn)在,我們用 git remote -v 查看遠程庫信息,可以看到兩個遠程庫:
$ git remote -v
gitee git@gitee.com:imnoob/runoob-test.git (fetch)
gitee git@gitee.com:imnoob/runoob-test.git (push)
github git@github.com:tianqixin/runoob.git (fetch)
github git@github.com:tianqixin/runoob.git (push)
如果要推送到 GitHub,使用命令:
git push 遠程庫的別名 分支名
git push 遠程主機名 本地分支名:遠程分支名
例:
$ git push github master
如果要推送到 Gitee,使用命令:
$ git push gitee master
這樣一來,我們的本地庫就可以同時與多個遠程庫互相同步:
$ git remote add 遠程倉庫別名 倉庫的https地址 # 給遠程倉庫起別名
$ git clone 遠程倉庫的https地址 # 將遠程倉庫克隆到本地。
如果在沒有.git管理文件的文件夾下克隆Git倉庫后,需要切換到下一級文件夾(即含有.git管理文件的文件夾下繼續(xù)執(zhí)行git指令。)
$ git checkout dev
在公司下載完代碼后,繼續(xù)開發(fā)。在dev分支開發(fā)完成之后需要commit 到本地庫保持進度的更新
$ git commit -a -m 'dev分支第一次開發(fā)完成'
準備遞交代碼到Gitee上
$ git pull 遠程倉庫別名 dev # 在提交到gitee上之前pull一下最新的代碼,防止之前有人提交過dev分支的代碼,導致自己push不上去
修改完合并后的代碼
$ git commit -a -m 'dev分支第一次開發(fā)完成' # 提交dev分支代碼到本地庫
$ git push 遠程倉庫別名 dev # 將本地庫master分支的代碼推送到gitee倉庫中
切換到dev分支準備工作
$ git checkout dev
拉代碼
$ git pull 遠程倉庫別名 dev
繼續(xù)開發(fā)
提交代碼到Gitee上
$ git pull 遠程倉庫別名 dev # 在提交到gitee上之前pull一下最新的代碼,防止之前有人提交過dev分支的代碼,導致自己push不上去
修改完合并后的代碼
$ git commit -a -m 'dev分支第一次開發(fā)完成' # 提交dev分支代碼到本地庫
$ git push 遠程倉庫別名 dev # 將本地庫master分支的代碼推送到gitee倉庫中
將本地庫的dev分支合并到master分支,并將master分支推送到Gitee上
$ git commit -a -m 'dev分支的功能開發(fā)完成' # 提交dev分支代碼到本地庫
$ git checkout master # 從dev分支切換到master分支,dev開發(fā)的文件都會消失,所以需要提前在dev分支上commit。記住所有的checkout之前一定要commit(等價于Ctrl+s)代碼,防止代碼丟失。
$ git merge dev # 在master分支上合并dev分支,合并完成后需要自行解決沖突
$ git pull 遠程倉庫別名 master # 在提交到gitee上之前pull一下最新的代碼,防止之前有人提交過master分支的代碼,導致自己push不上去
修改完合并后的代碼
$ git commit -a -m 'merge分支開發(fā)完成' # 提交merge分支代碼到本地庫
$ git push 遠程倉庫別名 master # 將本地庫master分支的代碼推送到gitee倉庫中
把dev分支也推送到遠程
$ git checkout dev # 從master分支切換到dev分支,此處緊跟上步操作,剛剛commit了master分支,所以此處可以不commit。
$ git merge master # 在dev分支上合并master分支,因為需要保持master與dev分支的同步,所以在兩個分支上都需要分別做merge操作。
$ git pull 遠程倉庫別名 dev # 在提交到gitee上之前pull一下最新的代碼,防止之前有人提交過master分支的代碼,導致自己push不上去
修改完合并后的代碼
$ git commit -a -m 'dev分支開發(fā)完成' # 提交dev分支代碼到本地庫
$ git push 遠程倉庫別名 dev # 將本地庫dev分支的代碼推送到gitee倉庫中