git之sourceTree操做流程


 

1x.sourceTree的使用流程 html

12.Git管理工具對比(GitBash、EGit、SourceTree) git

11.SourceTree使用SSH克隆碼雲項目github

 

====== web

1x.sourceTree的使用流程 

1.      安裝Gitshell

下載地址:點擊打開連接windows

安裝指南:默認選項便可緩存

2.      安裝TortoiseGit安全

下載地址:點擊打開連接服務器

安裝指南:點擊打開連接app

11.win系統git的安裝和環境變量配置;
   windows下生成github ssh公鑰--ssh克隆方式提交代碼?
 
最近公司準備用coding了,之前都是直接用的github,可是有時候會出現連不上的情況,因此就轉移到了國內的coding,不得不說,這個肯定挺好用的,並且如今還有了更高級的功能,webIDE,可以在線編輯你的代碼,是否是很爽?固然,使用它以前第一步就是要配置SSH key的公鑰,下面說下windows如何生成ssh公鑰:
1. 安裝git,從程序目錄打開 "Git Bash" 或者直接用git shell,github自帶的工具
2. 鍵入命令:ssh-keygen -t rsa -C "email@email.com"
  "email@email.com"是github帳號,回車;
3. 提醒你輸入key的名稱,接着提醒你輸入密碼,輸入如id_rsa(能夠選擇什麼都不輸入,一路回車,咱們能夠敲入三個回車,默認配置;
   文件就會直接生成在C:\Documents and Settings\Administrator\.ssh\ 目錄下)
4. 在C:\Documents and Settings\Administrator\下產生兩個文件:id_rsa和id_rsa.pub
5. 把4中生成的密鑰文件複製到C:\Documents and Settings\Administrator\.ssh\ 目 錄下。
6. 用記事本打開id_rsa.pub文件,複製內容,在github.com的網站上到ssh密鑰管理頁面,添加新公鑰,隨便取個名字,內容粘貼剛
才複製的內容。
7. ^_^ OK了
須要注意步驟2中產生的密鑰文件在當前用戶的根目錄,必須把這兩個文件放到當前用戶目錄的「.ssh」目錄下才能生效。
在windows中只能在命令行下輸入建立"."開頭的文件夾。命令爲 mkdir .ssh
 -----
 將SSH配置到Github中 
 進入生成的SSH目錄 : C:\Documents and Settings\Administrator.ssh (或者 C:\Users\本身電腦用戶名.ssh)中, 使用記事本打開 id_rsa.pub文件, 將該文件中的內容複製;
 進入GitHub網站 : 登陸GitHub,選擇左側的SSH and GPG keys選項;
 itle和Keys(將上一步操做獲得的SSH-Key複製進去 :)輸入完成後,點擊Add SSH key 
 驗證是否配置成功:ssh -T git@github.com
 驗證時可能讓你輸入YES:
   成功提示:若是出現Hi XXXX! You’ve successfully authenticated, but GitHub does not provide shell access. 就說明配置成功, 能夠鏈接上GitHub了!
 
12.sourceTree的安裝和配置(內置git插件);
    sourceTree克隆代碼方式? --https和ssh克隆方式區別:
    建立本地SSH(一種傳輸代碼的方法,速度快安全)。(也能夠選擇HTTPS傳輸)。
    
    .解釋:
1.ssh-keygen 是公鑰私鑰的非對稱加密方式: 
1.1.公鑰:用於向外發佈,任何人都能獲取。
1.2.私鑰:要本身保存,切勿給別人
2.公鑰私鑰加解密的原理 
2.1.客戶端把本身的公鑰存放到要連接的遠程主機上(至關於咱們把本身的 id_rsa.pub 存放到 git 服務器上)
2.2.客戶端要連接遠程主機的時候,遠程主機會向客戶的發送一條隨機的字符串,客戶的收到字符串以後使用本身的私鑰對字符串加密而後發送到遠程主機,遠程主機根據本身存放的公鑰對這個字符串進行解密,若是解密成功證實客戶端是可信的,直接容許登陸,不在要求登陸。
13.sourceTree克隆github代碼或者碼雲代碼報錯現象?
 
 錯誤一:git---如何解決The authenticity of host 'gitee.com (120.55.226.24)' can't be established
 
 錯誤二:Git使用錯誤收集:-ssh agent失敗 錯誤代碼-1;ssh-agent 失敗,錯誤代碼:-1:
 
 Permission denied (publickey)錯誤: git遠程庫與本地庫同步 git設置ssh公鑰 Bad escape character 'ygen'

 

12.Git管理工具對比(GitBash、EGit、SourceTree)?

Git管理工具對比(GitBashEGitSourceTree

GitBash是採用命令行的方式對版本進行管理,功能最爲靈活強大,可是因爲須要手動輸入但願修改的文件名,因此相對繁瑣。

EGitEclipseGit插件,最爲糾結的一個軟件,由於開發時直操做很方便,尤爲是有svn開發情節的人更熱衷於這樣,不過EGit中有不少bug和不人性化的東西,讓人吐血,因此

一句話EGit並不能解決全部Git問題,開發時必須部分依賴於其餘Git管理工具。一會一一列舉。

SourceTree是最近應用的一個軟件,一句話歸納,既有GitBash的命令行,又有EGit的圖形化管理,用戶界面很人性化,Eclipse+GitBash徹底能夠應付版本管理。

那麼下面我結合項目中開發遇到的問題一一講解一下:

 

<>EGit之我見:

EGit最大的好處是集成在eclipse裏面,對於代碼修改後提交很方便,其中我最常使用的部分是:

(1)簡單的Commitpullpush

(2)Git repository(看資源庫視圖)(包括新建分支,切分支,合併分支)

(3)工程reset hard(強制覆蓋本地版本),一些特殊狀況會有問題。

(4)工程checkout到某一個分支,能夠看當時的文件。

(5)工程show in history (查看工程變動歷史),沒有時分秒,很不爽。

 

其餘的功能我用的很少,由於EGit確實有不少bug,犯過血淋淋的錯誤。

這裏解釋一下,爲何第一條我要加上」簡單的」,由於不少時候沒有pull下來,或者沒有push上去,提示的信息很粗,有時候甚至誤覺得提交,發現過不少問題,因此若是肯定如今沒人和你同時改同一個文件,用EGit仍是很爽的。

 

<>GitBash之我見:

通常我主要經過命令行進行pull push 還有 status的操做,這個詳見我前一篇文章

Git Bash+EGit在項目中配合使用最經常使用方法總結》,命令行用好了非常很不錯的,除了那種須要手寫文件名的時候,比較不爽,一兩個還能夠,多了就吐血了。


<>SourceTree之我見:

這個是我最近才發現了一個很好的工具SourceTree,能夠說SourceTreeEGitGitBash的合體,既有圖形化界面又有git命令行。

(1)基本的commitpullpush都擁有,並且一旦發生錯誤的時候提示很準確。

(2)基本的分支管理業有,最挫的Egit刪除遠程分支是假刪除,SourceTree完美解決了這個問題。

(3)擁有EGit中的reset(重置)和checkout(簽出)兩大功能,並且更加穩定。最令我懷疑的EGitreset hard也有報錯的時候,哎。SourceTree仍是很穩定的。

(4) 那麼最近用SourceTree,發現了一個很強大的功能,就是「丟棄」這個功能,和checkout其實原理是同樣的。不過圖形化界面確定比較方便了。這裏具體解釋一下這個功能:

 

換句話說,你改了一批文件,若是想提交一部分,保留一部分,無疑命令行最麻煩。

而後你不知足,其中有幾個文件你還想回滾,不想改了。那麼SourceTree最容易。

這裏須要注意一下命令行中checkout 是指未add的,那麼能夠回滾到最近的線上的commit狀態。若是add以後又修改,那麼會回滾到add以後的狀態。

這一個原理,在Source體現的更明顯,以下:

A. 首先我先將修改後的personRiskBase.jsp拖到緩存區中(1)。

圖(1

 

 

B. 而後再次修改,發現下面的工做區中也有這個頁面了(圖2)。

(圖2

 

C. 如今就能夠對此文件進行丟棄了,若是將下面文件丟棄(checkout),那麼該文件將變爲緩衝區中的文件,若是將緩衝區文件丟棄,實際上回到了最近的commit版本了(reset操做)

這裏注意,若是該文件commit了,那麼checkout實際上回不到commit以前的版本的,須要reset。下面詳細介紹一下reset命令。


(5) 對於reset功能的應用。這裏先普及一下Git理念的事:

A. 明確一點,每一次commit都是對應着一批操做而不是對應一個文件。

這點和SVN的設計理念徹底不同。

這也形成了一個必然的結局:SVN的分支存的是一個工程,因此每簽出一個分支實際上都是簽出一個工程。

Git的分支存的是修改的記錄,因此每簽出一個分支,實際上都是對原工程的一次覆蓋。

B.在開發過程當中你們可能會遇到這樣一個問題:Pull以後,會出現不少別人提交的代碼須要你本地再從新提交一次,那麼這個緣由是這樣的,固然這個是我我的的理解:Git會把每一次pull結果作兩個處理:

B1.若是pull以後,本地沒有任何問題,那麼不須要再次提交別人修改的東西了,只須要繼續你的修改,push就能夠了(正常狀況下一版都是這樣)。

B2.若是pull以後,本地有問題,大部分狀況是衝突的狀況,那麼Git會把本次當作一次不成功的pull(那麼通俗的來說,git會認爲,你認爲不成功,那麼你把此次版本按照你的想法改一下,再提交吧),因此你作完刪減以後,須要把剛纔別人的東西再提一次做爲一個新的commit

(6) 對於checkout某一次提交,SourceTree也很人性化,會給出很人性化的提示。注意checkout以後,你的工程當前不屬於任何分支,不過能夠基於此從新建立一個分支,很方便。

總結一下:這裏只列出了一些關鍵的問題和不一樣點,固然工具的選擇因人而異。你們能夠在工做中慢慢體會,若是有問題歡迎你們提出,給我寶貴的意見。

 

 

11.SourceTree使用SSH克隆碼雲項目?

1、HTTPS和SSH克隆方式的區別

HTTPS:每次獲取fetch和推送push代碼時都須要從新驗證帳號和密碼。(適合僅僅用來學習閱讀項目代碼的用戶)
SSH:若是你是項目成員,就能夠用這種方式,獲取和推送操做時不須要再次驗證帳號。須要事前在本地建立SSH Key並添加到碼雲中。(適合項目成員,參與項目開發)
由於HTTPS比較簡單,因此這裏就不講啦。主要講SSH方式的克隆。

2、建立添加SSH-key

打開SourceTree,操做——在終端中打開(事先要裝好Git)——在這裏輸入命令行

一、建立:ssh-keygen -t rsa -C wdehxiang@163.com

三次回車這樣就不用設置密碼,免得麻煩。其中wdehxiang@163.com這個是個人註冊郵箱,你改爲本身的。

二、查看:cat ~/.ssh/id_rsa.pub   

查看公鑰value,右鍵copy。也能夠進入C:\Users\Administrator\.ssh用記事本打開id_rsa.pub複製公鑰

三、添加:登陸碼雲——我的中心——修改資料——SSH公鑰


四、測試:ssh -T git@git.oschina.net   
若是能夠看到welcome,你的暱稱,說明成功了!

五、配置:打開sourceTree——工具——選項——在SSH客戶端中選擇OpenSSH——完成

 

6. 特別注意:使用sourceTree報錯:Git使用錯誤收集:-ssh agent失敗 錯誤代碼-1;

    解決方法:sourceTree設置--git--選擇從本地加載git; 

3、開始克隆SSH

一、登陸碼雲後,進入開源項目,隨意選擇本身但願導入SourceTree的一個項目。

二、進入項目後點擊克隆,會看到HTTPS和SSH兩種方式,首先咱們選擇SSH方式,複製網址

三、打開sourceTree,點擊Clone

四、克隆成功,如今能夠開始操做啦。

相關文章
相關標籤/搜索