1. 程式人生 > >SmarGit 操作指南(一)

SmarGit 操作指南(一)

Git 
是一個很強大的版本控制工具。




SmartGit

是一個強大的git 影象介面工具(GUI)。目前有Mac版和windows 版,本文主要介紹SmartGit的使用,如果不打算使用GUI,可以略過本文。


 


一、理解基本命令
要理解SmartGit 首先要理解git的基本知識,比如一些常見的命令。已經熟悉使用命令列,可以略過本步驟。


 cd 要管理的目錄
       git init                                                 #初始化  在原始碼目錄內生成一個.git的目錄
       git config --global user.name XXX     #使用者名稱

       git config --global user.email XXX     # 使用者郵箱
       git config –list                                    #檢視使用者資訊
       git add  #把改好的檔案加入暫存區
       git commit –m “xxx”                           #提交暫存區的檔案到當前的本地本地分支,“xxx“為必須天加的註釋。
       git pull                                                #  相當於是從遠端獲取最新版本並merge到本地

 (在提交前要git  pull  --rebase一下,確保當前的本地的程式碼為最新。)
       git fetch                                             #相當於是從遠端獲取最新版本到本地,不會自動merge
     (git fetch更安全一些,pull相當於fetch然後merge。因為在merge前,我們可以檢視更新情況,然後再決定是否合併)
       git push                   #向伺服器提交


————————————殘酷的分割線——————————————————
這部分的命令可以不看,喜歡的還是可以瞭解下

git log                    #檢視版本資訊
git status                  #檢視當前程式碼庫的狀態
git reset --hard              #回到原來編輯的地方,改動會丟失。
git reset --hard sdv143kvf…...  #可回到指定的版本



二、理解Git的工作方式
1.檔案有改動

檔案有改動會存在兩種狀態,一種是你已經改好了的,一種是正在修改當中的。此時,你可能想提交已經改好的,於是Git 提供了add命令,將需要提交的檔案放入暫存區,接著下一次commit命令的時候,Git 就會提交所以暫存區裡的檔案到本地倉庫的當前分支。

2. 團隊協作

commit是提交到本地,pull是提交到伺服器。如果每次改變都提交的伺服器的主幹分支,會很容易造成主分支(master)的混亂,甚至會導致無法挽回的損失,而且頻繁的網路訪問很耗費時間。所以通常的做法是:

(1)管理員在服務端建立主分支
(2)程式設計師A、B、C將主分支克隆下來,並建立自己的分支如:A。
(3)A程式設計師在A分支完成了自己負責的模組,接下來就是合併了。
(4)切換到local/master,將origin/master pull到local/master。
(5)切換到A branch(分支),將local/master合併到A branch,此時可能需要解決衝突。
(6)上一步完美合併後,再checkout(切換)到local/master,並把A branch 合併進來。
(7)執行pull,A程式設計師完美滴提交了自己完成的模組到伺服器。
3.其他
以後再更新。委屈






三、 SmartGit的基本操作


1.建立,匯入
從伺服器克隆一個
 






2.add、commit操作
我的操作是刪除了一張圖片。
 
於是ajenti.jpg 的檔案狀態變為missing,此時我們點選Stage把Files區的檔案加入暫存區。
 
點選commit提交到當前本地分支

 


接下來可以看到:

 
分支視窗下,bobby 分支 比master分支多了一個提交操作。






3.分支合併
接著前面的例子:分支視窗下,雙擊即可切換到相應分支。雙擊切換到Local/maser
 
雖然沒顯示服務端master有更新,但是還是要先pull下,因為這工具有時不太智慧。
 

果然,服務端master分支確實有新內容,比bobby多了一個提交。而我們剛剛也有一個提交,所以也比服務端多“另一個”提交。



確認當前的分支是master,點選merge(合併)


 

雙擊第一個,然後選fast-forward