
【基本介紹】
GitKraken是一款Windows平臺上的Git客戶端,GitKraken可以連接到存儲庫,允許用戶與資源的交互,輕松執(zhí)行,管理任務管理、克隆和創(chuàng)建新的存儲庫的幫助下在現(xiàn)代界面簡單和平穩(wěn)運行。GitKraken是一個組織良好的圖形用戶界面設計來幫助你管理你的Git倉庫風格。本集大部分功能的人會期望從一個Git客戶端也集中在效率和易用性。【軟件特點】
1、跨平臺一致性GitKraken是一個基于Electron構建的Git客戶端,可以在Windows,Mac和Linux桌面系統(tǒng)上本地運行。
2、直觀的體驗
視覺互動、分支、合并和提交歷史
可調(diào)整大小的提交圖,充分響應和易于理解。
3、無縫集成
最好的Git客戶端應該與您的Git托管服務集成。這就是為什么GitKraken連接到流行的服務,如GitHub,Bitbucket和GitLab,使您的遠程存儲庫更容易工作。
【軟件功能】
1、Gitflow支持。2、1-Click撤消和重做。
3、鍵盤快捷鍵。
4、文件歷史和責備。
5、子模塊。
6、明暗主題。
7、Git鉤子支持。
8、Git LFS。
9、應用內(nèi)合并沖突輸出編輯器。
10、工作和個人使用的多個配置文件。
11、GitLab CE,GitLab EE和GitHub企業(yè)集成。
【安裝方法】
在本站下載gitkraken下載下來有一個.exe的文件,雙擊運行,它就會自動幫你安裝完畢的!
【使用教程】
1. 首次打開程序第一次打開GitKraken程序時, GitKraken會提示需要登陸,可以用github.com的賬號登陸,或者用郵箱創(chuàng)建賬號登陸。

登陸時會向你推薦使用Pro版本,免費版本已經(jīng)足夠我們的日常使用,碰到相關的提示時選No即可。打開程序并成功登陸后顯示如下界面(如圖 1?2):

2. Authentication(授權)
我們一般用到比較多的情況是從服務器上clone一個已有的倉庫。在clone服務器上的倉庫前,首先需要設置/生成本地的加密解密密鑰。
打開 GitKraken 的File => Preference => Authentication,出現(xiàn)如圖所示的界面:

如果你之前沒有使用過GitKraken這款軟件的話(或者也沒有生成過SSH密鑰),需要先點擊圖中的綠色按鈕,生成 SSH 的公鑰和私鑰。

然后點擊 右側(cè)的復制按鈕

將公鑰發(fā)送給Git服務器管理員,由管理員將你的公鑰添加到服務器中。那么你就可以添加遠程倉庫,并克隆代碼到本地了。
3. 修改用戶名
為了方便項目中代碼的管理,需要重新編輯用戶名。
點擊右上角的圖像即可看到如下圖 3?1所示的下拉菜單,鼠標懸于Profile上,會出現(xiàn)一個Edit按鈕。

點擊Edit按鈕將會出現(xiàn)如圖所示的信息編輯窗口:

我們需要把圖中的Name和Email改成自己的姓名(中英文名皆可)和郵件。點擊“Save changes”保存修改。
4. 初始化本地倉庫
如果你需要在自己本地代碼的目錄下新建一個Git倉庫,點擊左上角的 File => Init Repo,點擊 "Browse" 按鈕選擇需要初始化倉庫的目錄,然后點擊 "create repository"即會出現(xiàn)如下圖所示的界面。

圖中的.gitignore 和 License 都是可選的。.gitignore文件是git在提交時會讀取的一個文件,現(xiàn)在可以不用管它的作用是什么(如果項目是一個C++工程,我們可以選用預設好的C++.gitignore)。
5. 克隆服務器上的項目
首先,返回主界面,點擊File => Clone Repo,選擇 Clone with URL,如下圖:

1) SSH 方式連接倉庫
SSH 方式的Clone步驟:
①點擊
右側(cè)的
按鈕,打開文檔對話框,選擇存放代碼的本地目錄;②填寫服務器URL路徑(倉庫)以 服務器上的路徑 /src/Test.git 為例,通過SSH方式連接到服務器上的倉庫。
③URL填寫 ssh://git@192.168.0.155/src/Test.git,將會以SSH方式連接服務器并克隆 Test倉庫,代碼存放在本地的 G:\18up\test 目錄中。程序會自動為你創(chuàng)建一個子目錄
④點擊綠色按鈕 ,克隆完成后在程序頂部會出現(xiàn)一些提示,如下圖:

點擊 Open Now 就會打開剛剛克隆到本地的倉庫,點擊OK則會確認該提示,但不執(zhí)行操作。
2) 在服務器中查找鏈接
如果不知道服務器中倉庫的位置,在瀏覽器中填寫 192.168.0.155 并跳轉(zhuǎn)。會出現(xiàn)以下界面:

找到想要clone的倉庫,復制對應行的最右側(cè)的 Git 鏈接,并將該鏈接粘貼入程序的 URL 文本框中即可。
3) SCP 方式連接倉庫
SCP 和 SSH 兩種方式的差別在于填寫的URL不同(即第2步開始,步驟會有所不同),如下圖:

填寫的URL為 192.168.0.155:/src/Test.git,與SSh方式有所不同。
按照第3步的步驟,點擊Clone按鈕,在程序頂部即會出現(xiàn)一些提示如圖

點擊 “submit ” 即可下載服務器上倉庫的代碼。
若頂部出現(xiàn)后續(xù)選項,連續(xù)點擊相應的綠色按鈕(如:Open, Initialize等)
這里我們使用默認的git用戶即可。
克隆好服務器上的倉庫后,你還不能立即使用它來進行版本控制,有幾個重要的地方需要修改:
鼠標移動到REMOTE樹狀圖下方的origin處,

右鍵點擊該欄(或者點擊右側(cè)的下拉菜單欄按鈕),會出現(xiàn)如圖示的下拉菜單:

使用SCP方式進行連接時需要注意:GitKraken程序(version3.5.0)有個bug,我們需要手動修正它。點擊Edit origin 可以看到類似圖的界面:

如果編輯框內(nèi)的 155: 和 src 之間缺少斜杠的話,我們就需要在“155:”后面添加一個斜杠“/”(若程序沒有這個bug就可以跳過這一步),否則在Push和Pull時就會出現(xiàn)找不到遠程倉庫的錯誤。
4) 完成倉庫的克隆
當添加遠程倉庫并且成功拉?。╬ull)操作后,可以看到如圖的程序界面:

7. 提交代碼
1) 查看文件改動
修改了某個文件后,在程序右側(cè)會出現(xiàn)已修改文件的列表,這里以Test.git 為例,修改了19264.h 的文件編碼,將其改為utf8。Unstaged Files 方框內(nèi)就會出現(xiàn)為19264.h

點擊這一項,GitKraken的左側(cè)區(qū)域和中央?yún)^(qū)域就會變成文件比較器,如圖。

該圖是以Diff View的形式顯示文件,也就是顯示當前提交和上次提交時該文件改動的位置。紅色部分表示這次提交所刪除的內(nèi)容,綠色部分表示這次提交所增加的內(nèi)容。
點擊Diff View旁邊的File View(圖中的右上角)即可用普通的文本顯示器形式查看文件內(nèi)容。
這里可以看到改動的部分是將亂碼的內(nèi)容全部重新正確解碼了。
2) 按文件進行提交
對代碼進行修改后,如果認為這次修改的所有文件都沒有問題,可以將所有文件全部存入暫存區(qū),然后填寫CommitMessage,具體步驟如下:
點擊右側(cè) 按鈕可以把已經(jīng)修改的所有文件存放到暫存區(qū)中。

如果只想提交某幾個文件,鼠標移至該項所在位置,右側(cè)即會出現(xiàn) 按鈕,如x下圖,點擊就可以將這一個文件存放到暫存區(qū)。
2. 存到暫存區(qū)后,在暫存區(qū)就會出現(xiàn)這個文件:

3. 接下來填寫CommitMessage(至少需要填寫Summary),提交(commit)到工作目錄,就能生成一個提交記錄,便于以后回退代碼版本或進行其它操作。

3) 提交文件中的一部分代碼
提交代碼時,如果不想提交整個文件,可以在GitKraken中點開該文件的比較視圖(Diff View),比較上一次代碼提交和本次修改的內(nèi)容。
從圖中可以看到,GitKraken已經(jīng)將改動的代碼按照區(qū)域進行分塊了。
鼠標移至該塊,右上方會出現(xiàn)一個 “discard huuk”按鈕和 “stage hunk”按鈕。如下圖:

點擊“discard huuk”將會暫存這一塊修改的內(nèi)容,保留綠色部分(即保留+2 ~ +4 行的內(nèi)容,丟棄 -2 ~ -4 行的內(nèi)容),
“stage hunk”將會丟棄掉改動的這一部分,保留紅色的部分(保留-2 ~ -4 行的內(nèi)容,丟棄 +2 ~ +4 行的內(nèi)容)。
以19264.h為例,若保留一部分修改過的內(nèi)容和一部分修改之前的內(nèi)容,那么該文件既會存在于Unstaged Files列表中,也存在于Staged Files列表中,這是因為該文件還有部分沒有提交到暫存區(qū)中。
從19264.h文件編碼改為utf8后的提交記錄開始,在文本編輯器中已經(jīng)將LCD_Send_1 函數(shù)整個刪除,紅色區(qū)域就對應著代碼的刪除記錄。若現(xiàn)在只需要刪除 LCD_Send_1 函數(shù)中的switch判斷語句,即圖中的 -45 ~ -50 行代碼。

注意到,鼠標移動到改動區(qū)域的某一行時,該行左側(cè)會出現(xiàn)一個 “+”按鈕,點擊該按鈕就會確認這個修改。

現(xiàn)在需要保留 -36 ~ -63 行的內(nèi)容,點擊圖中的 “discard huuk”按鈕,該界面會出現(xiàn)提示:File contents are unchanged. 而 Unstaged Files 列表中仍有 19264.h 文件,
點擊列表中文件右側(cè)的“stage hunk”按鈕,將該文件提交到暫存區(qū)即可。將會提交的內(nèi)容如下:

可以看到,將要提交的文件(記為A2)與之前的文件(記為A1)相比,少了A1中的45~50行,填寫Commit Message,提交到工作目錄。在文本編輯器中查看,能夠發(fā)現(xiàn)LCD_Send_1 函數(shù)中的 switch 語句已經(jīng)刪除。
4) 放棄本次文件的改動
有些情況下,由于更改代碼造成了編譯無法通過等錯誤時,想要放棄這次對文件的修改,將文件還原成上一次提交后的狀態(tài),一種簡單的恢復文件的方法就是,在Unstaged Files 列表中找到這個文件(如Chip_ADC.h文件),右鍵點擊,出現(xiàn)如圖所示的菜單:

點擊 Discard changes 這一項,在程序頂部出現(xiàn)提示:This will discard… Are you sure…?
然后點擊下圖中的紅色按鈕,放棄更改。

這將會丟棄本次對文件的修改,將文件還原到上一次提交的狀態(tài)。但是請注意,這樣做有會導致這次對該文件的修改全部丟棄,需要慎重對待。
推薦的做法是點擊Unstaged Files列表中的文件,查看改動的內(nèi)容,在不需要改動的地方點擊 Discard Hunk 按鈕,放棄這一部分的改動。
5) 修改提交記錄的描述信息
如下圖,以Test倉庫為例,點擊提交記錄區(qū)的某個提交記錄(如本地master分支指向的當前記錄)

在程序右側(cè)的工作區(qū)界面會出現(xiàn)這個提交記錄的信息。

圖中:
第1區(qū)域是提交這次記錄時填寫的描述信息。點擊方框,可以修改描述信息。
第2區(qū)域是這次提交的文件信息,圖中顯示了這次提交修改了一個文件,這個文件是19264.h文件。
6) 查看文件的歷史修改
右鍵點擊19264.h文件,右鍵菜單中會出現(xiàn) File History 和 File Blame 的選項。兩個選項都可以顯示文件的修改歷史,修改歷史的時間跨度為從第一次提交記錄到當前選擇的提交記錄。

File History 將會以Diff View 的形式顯示每次提交記錄與前次提交記錄的差異;
File Blame 將會以File View 的形式顯示該次提交記錄完成的文件內(nèi)容。
點擊其中的一個,會出現(xiàn)如下圖的文件歷史列表:

這里只有兩次提交記錄中修改了改文件。點擊歷史記錄中的提交記錄,能夠查看這次提交記錄中該文件的改動內(nèi)容。
8. 本地分支和標簽
1) 在提交記錄區(qū)中查看分支狀態(tài)
提交記錄區(qū)中每一個分支都位于一個提交記錄所在的行中。
從圖中可以看到,服務器上的master分支停留在整理格式(把這個提交記錄記為origin_master_HEAD)這個提交記錄處,
在本地的master分支(將master分支所在的提交記錄記為master_HEAD)里,將19264.h文件編碼改成了utf8。
而后從origin_master_HEAD處創(chuàng)建了一個新分支:testconflict,對Chip_ADC.h和19264.h這兩個文件都做了修改,把這里的提交記錄記為test_HEAD。

圖 2?1 提交記錄示意圖
2) 創(chuàng)建本地(Local)分支
在GitKraken中央?yún)^(qū)域的提交記錄處右鍵點擊,出現(xiàn)如下所示的下拉菜單:

點擊 Create branch here 將會提示出入分支名(下圖的enter branch name)

這里將新分支名命名為 testnewbranch。確定后將在當前提交記錄處創(chuàng)建一個新的分支。程序左側(cè)的LOCAL菜單中將會出現(xiàn)分支 testnewbranch,如下圖:

創(chuàng)建完新分支后,程序會自動跳轉(zhuǎn)到新創(chuàng)建的分支中。
3) 切換本地(Local)分支
圖中有三個本地分支 master ,testconflict和testnewbranch(當前版本分支為testnewbranch,左側(cè)有勾的表明該分支是當前所在的分支):

要切換到其它的分支(如切換至master分支),有幾種方法:
a) 將鼠標移至master分支所在欄,點擊右側(cè)按鈕(紅色方框圈出的按鈕),或右鍵點擊該欄,
出現(xiàn)如下圖的下拉菜單,點擊Checkout master,即可切換到分支master。

b) 直接在本地分支列表中雙擊 該分支也可以切換至該分支
4) 刪除或重命名本地(Local)分支
右鍵點擊分支列表中的某個分支,這里以testnewbranch為例,

點擊 Rename testnewbranch,在程序頂部出現(xiàn)提示:

填寫新名稱,如“renamedbranch”,填好后,點擊 Submit 按鈕。本地分支列表中的分支名稱就會有相應的改變。需要注意,更改后的分支名不能與已有的分支名重復。
若點擊 Delete testnewbranch,同樣的,在程序頂部出現(xiàn)提示:

點擊 Delete 按鈕將會把該分支從本地刪除。
5) 專注于分支及其所在的路徑
右鍵點擊本地分支或遠程分支,在下拉菜單欄中選中Hide項,即可在中央提交記錄區(qū)域隱藏該分支,以隱藏testconflict分支為例,在本地的分支列表中可以看到testconflict分支左側(cè)的標記變?yōu)榛疑?br />


點擊菜單中的Solo項,將會僅顯示這一條分支。
6) 標簽(TAGS)
TAGS表示當前工作區(qū)中存在的標簽。

右鍵點擊GitKraken中央?yún)^(qū)域中的提交記錄,出現(xiàn)下圖所示的菜單,點擊可以在當前提交記錄處創(chuàng)建一個本地的標簽。

這里需要注意,一般在本地打上TAG后,上傳代碼時不會自動同步到服務器,必須在TAGS標簽下選中標簽,右鍵push TAG到服務器(origin)上才能被共享(如圖 2?11)。
(如果需要把本地所有標簽全部上傳到服務器上,在命令行或終端中用命令 git push --tags 將本地所有標簽上傳至服務器。)
9. 遠程(Remote)倉庫
1) 添加遠程倉庫
一般在本地新建倉庫后,需要添加一個遠程倉庫用于push/pull代碼。鼠標移至GitKraken左側(cè)區(qū)域的REMOTE欄,點擊

再點擊該欄右邊出現(xiàn)的
將會出現(xiàn)如下圖所示的界面:

Name 填寫的是遠程倉庫的名稱,用于標識不同的遠程倉庫。Pull URL 和 Push URL 一般是一樣的,這里填寫的是服務器上的Test倉庫。
填寫完后,點擊 Add Remote 按鈕,完成遠程倉庫的添加。
如果是通過克隆的方式拷貝遠程倉庫中的代碼,那么一般是不需要添加遠程倉庫的,程序會自動為你添加一個叫做 origin 的遠程倉庫。
2) 向遠程倉庫添加分支
添加好遠程倉庫后,程序會自動在本地添加遠程分支的指針(一般為origin/master)??寺∵h程倉庫時程序也會添加遠程分支的指針。
要向遠程倉庫中添加新分支,需要先在本地創(chuàng)建一個新分支,參考8.2) 節(jié) 創(chuàng)建本地(Local)分支 的內(nèi)容。
假設現(xiàn)在已經(jīng)在本地創(chuàng)建了一個叫做testnewbranch的分支,并已切換至該分支。
點擊程序頂部的

將其推送到服務器倉庫origin上。
在程序頂部會出現(xiàn)提示:What remote/branch should “testnewbranch” push to and pull from? 以及下圖所示的內(nèi)容

點擊 Submit 按鈕,將會在遠程倉庫中新建叫做“testnewbranch”的分支,并將本地分支推送到服務器上的testnewbranch分支。在遠程倉庫origin的分支列表中就會出現(xiàn)testnewmaster分支,如下圖:

3) 刪除遠程倉庫中的分支
若遠程倉庫中有些分支是意外推送上去的,可以右鍵點擊遠程倉庫中的分支列表,以刪除遠程倉庫的testnewbranch分支為例,
在下拉菜單中找到Delete origin/testnewbranch選項如圖 3?4,點擊即可刪除遠程倉庫中的testnewbranch分支。

4) 修改本地分支和遠程分支的對應關系
一般本地分支和遠程分支是一一對應的,如本地的master分支應該對應于遠程分支origin/master,一般不需要手動修改分支的對應關系。
右鍵點擊本地的分支列表,比如點擊master分支,出現(xiàn)如下圖所示的菜單:

點擊 Set Upstream,在程序頂部出現(xiàn)提示:

Origin 處選擇的是遠程倉庫,緊隨其后的文本框是要創(chuàng)建的遠程分支名,這里填寫testmaster以便向遠程倉庫中添加testmaster分支。點擊 Submit 按鈕,將會改變本地分支推送和拉取時對應的遠程分支。


































