初次接觸git,這是一個新鮮玩意兒。展現一下個人成果吧。html
ssh免密碼操做git
首先在coding.net上面註冊了賬號之後,須要配置ssh免密碼操做。網上搜羅了一系列教程,配置完成後。在遠端部署了公鑰,但每次拉取代碼或者上傳更新時仍是須要輸入密碼。這使我煩惱不已,按照極客上面的教程來也是隻能在git bash 一直開着的狀況下可用。 一旦關掉就只可以繼續輸密碼才能操做。而後我就想起了之前配置hadoop免密碼操做的步驟。
步驟以下:bash
ssh-keygen -t rsa -C "email"
email填寫本身能使用的郵箱名稱
接下來是四個回車
使用ssh檢查ssh
ssh -T git@git.coding.net
當執行完成這條命令時,會提示你成功的鏈接到了遠程倉庫
oop
上面這個命令是經過ssh免密碼操做遠程倉庫的,若沒有這條命令就不能有相應的權限,例如:在本地刪除項目後發現不能拉取遠程倉庫裏的項目。fetch
克隆項目到本地spa
這個操做的目的在於把遠程倉庫的項目克隆帶本地磁盤。.net
git clone + 項目地址
這裏順便說一下,可能有的朋友不清楚遠程倉庫的項目地址。只要在遠端打開相應的項目,選擇「代碼」就會看到了,直接上圖:
code
關於分支的:
首先本身在使用 「git --help」 命令之後,查看了git的大概使用方法找到branch的使用方法。
htm
根據 git branch --create branchname 的方式建立了個人第一個分支「developer」。
不過隨着瞭解的加深通用的建立方式爲:
git checkout -b developer master
即基於master分支建立developer分支,這樣的話我的也感受這樣的建立方式更明瞭一些。
每次開發前須要作的是與遠程倉庫同步,從倉庫拉取代碼到本地:
git pull或者git pull --rebase git pull = git fetch + git merge git pull --rebase = git fetch + git rebase
這裏的區別能夠查看這篇文章
因爲開發的任務不容許在master上面進行的,因此就會涉及到合併分支的問題。在開發分支完成開發之後,提交到開發分支,再與主分支進行合併。
git add . //提交到暫緩區;add後面的點前面必須有一個空格 git status //此命令可在任意時候使用,它的做用在於查看暫緩區的文件及狀態 git commit -m "對本次提交作出更改註釋" //提交到當前分支 git checkout master //切換回主分支 git merge --no-ff developer /*合併開發分支,--no-ff參數的做用是執行正常的合併,如果沒有這個參數,是一種快進 式的合併,對於版本的演進不清晰。由於在使用--no-ff參數之後master合併developer分 支時會新建立一個節點,developer和master都指向它,而不是直接由master指向 developer*/ git push origin master //上傳更新到遠程倉庫
衝突解決
可是有時候不免會發生衝突,有人在遠端提交了更新,而本身的本地對應文件也做了一些修改,這時上傳(push)就會失敗,並且拉取(pull)也會失敗。這時候檢查循着錯誤提示本地的文件,就會發現和本身保存時的不同了:
push失敗
pull 衝突
衝突文件內容
打開衝突的文件刪除點不須要的錯誤信息,從新上傳就能夠了。
回滾操做
一些時候若是發現了重大的錯誤或者沒法解決的衝突時,咱們須要將項目回滾到之前的版本。
git log //查看提交歷史
git reset --hard + 7位提交版本號
回退到須要的版本後修改相應的內容,提交到當前分支,在切換到master分支,合併開發分支,提交,上傳就能夠了。
git checkout master git merge --no-ff developer //此時會出現衝突,而後刪除不須要的內容就能夠上傳了。 git push origin master git checkout "7位提交版本號"//暫時性的回滾,不會修改分支內容