Git 教程(一)

Git 教程(一)java

因爲在學校沒參與過實際的項目開發,那時候寫代碼也就本身一我的玩玩,知道版本控制管理git這個工具,可是一直沒怎麼用,結果來實習的時候提交代碼各類悲劇,衝突挺多,下定決心要好好學習git。若是你經驗夠豐富了就不用看本教程了,我是寫給和我相似的人看的,作一個務實的程序員,靈活地使用git與團隊共同工做。git

Git原理:
Git是一款分佈式版本控制管理工具,與svn等集中式版本管理的主要區別在於,git 每一個機器都有一個版本庫,目錄.git就是你的版本庫,使用git提交代碼無須聯網,由於提交代碼的時候是向本地版本庫提交,天然無須使用網絡。固然後面還有分支,遠程庫這些概念,暫且不說。程序員

用git的程序員平時是怎麼工做的呢,上一張圖:網絡

 

 

 


平時咱們就在工做目錄裏工做,注意,不是在版本庫裏。咱們修改代碼、編輯代碼都在工做目錄裏。分佈式

當咱們改好了一個問題,就得像本地版本庫提交代碼。
提交一個文件Test.java 使用命令:git add Test.java 和 git commit -m 「提 價信息」 Test.java
提交所有修改 使用 git commit -a ,而後編輯提交信息,退出便可。svn

其實這兒還有暫存區的概念,就是用git add 命令的時候是把文件提交到了一個緩衝區,這樣方便咱們一次性提交到版本庫。工具


這兒不得不說一下分支Branch:學習

使用git commit -m 提交代碼的時候,默認是提交到你版本庫的一個分支master上。fetch

每一個分支Branch你能夠認爲對應着一個工做目錄,若是你有兩個分支:
master
test
當使用git checkout 分支名時,你會發現不一樣的分支工做目錄裏的內容並不相同。版本控制


知道這些了,那咱們來看看在實際的工做中是怎麼用的吧。

假如公司有一個項目ProjectA,做爲新人,第一天來,要將公司的代碼複製一份到本身的電腦上。

步驟:
① 安裝git (網上本身找)
② 配置git ,將本身的公鑰添加到GitHub的公鑰上(網上挺多,本身找)
③ clone項目

我主要講解git命令的操做
在電腦上新建一個文件夾,假如你公司叫MM吧
mkdir MM
git clone ProjectA的在gitHub上的地址

ProjectA克隆下來後,你修改了代碼,提交到本地版本庫以後,再想提交到公司的項目中。

使用git branch 查看你本地的全部分支:

查看本地分支和遠程分支的對應關係,git branch -vv

test分支就是我當前的分支
通常不要在master分支上作修改,也不要提交master分支的代碼,由於git push的時候若是沒有設置上游分支會根據本地分支名稱匹配遠程已存在的分支名。就是說提交本地master自動push到了遠程master,這樣很差,公司的master應該是穩定的,對外發布的,若是你代碼有錯誤,很差處理。

下面就來講說git push的一些細節:

若是你使用的是1.7以後的git,有兩種push模式。
① matching 若是直接使用git push會根據當前分支名匹配遠程已存在同名分支
② simple 比較保守,沒有設置上游分支push代碼會失敗

建議修改git push 的push.default參數爲simple


設置一個上游分支,遠程已存在的

  
這樣之後直接使用git push就是提交到 test1 分支去了

或者

 git branch --set-upstream-to =遠程分支名

就自動把本地所處的分支對應到了遠程分支 

 

下面介紹一個超實用的功能。
假如咱們只想在本地創建一個與遠程對應的分支,就是先有遠程分支而後依據它建立一個本地分支,這樣兩個自動呼應,這樣多爽!

步驟:① 創建一個空文件夾,使用git init 初始化版本庫② 添加遠程名 origin。git remote add origin 工程地址 ③ 使用git remote show origin 查看遠程工程的全部分支,能夠看見右邊是new④ 通知git更新遠程分支 git remote update,再次使用git remote show origin能夠看見被tracked了⑤ 使用git fetch⑥ 在本地建立一個分支和遠程的如出一轍 git checkout -b 本地分支名 origin/遠程分支名,並自動切換到本地分支了。⑦ 這時候使用git branch查看分支,發現只有一個分支,而且沒有master分支,這樣之後提交代碼都是到遠程的那個分支,不用提交到master分支上了。

相關文章
相關標籤/搜索