github小記

初次接觸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的使用方法。
    branch_helphtm

根據 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位提交版本號"//暫時性的回滾,不會修改分支內容
相關文章
相關標籤/搜索