講點簡單實用的知識點--git

git這個工具呢,是用于版本管理的,一個人開發(fā)的時候可能沒有什么影響,都是你一個人在管理和維護.但是當你進入一個團隊后那么就變得不同了,共同開發(fā)一個項目那么你就要與別人協(xié)作,完成開發(fā)的相關工作.所以問題來了.你寫的代碼和別人寫的代碼怎么合到一起呢,對,我們有ctrl+c,ctrl+v,這個操作我還是會的.那么如果修改的是同一個文件呢,那么是不是要選取更合理的,替換掉原來的代碼.想想都是一個非常繁瑣的工作.有這個需求,那么就市場,有市場就會有人去開發(fā)這個工具,所以相關的管理工具就出來了.其中用的較多的有svn,git.現在來說更多的用的還是git.至于為什么這里就不多說了,這里只講用法,原理有機會再說.

這里針對的是剛出來工作的大學生,因為在學校里的開發(fā),更多的還是個人,沒有用到git這類工具(當然這里說的是大多數的).所以剛入職公司,要學的就是git這個版本管理工具.這里算是提前給大家補充這塊的知識,學會了進入公司,要少花一點時間,同時也是讓自的開發(fā)更加的規(guī)范.

只講常用的命令,不常用的不講.
安裝這里也不講了,用windows的多,所以下一個.exe文件,傻瓜式的下一步,解決問題.
講一下安裝完成后的操作.

  1. 克隆代碼的命令,這個是一定得會的,因為第一次你去拉取代碼就是用的這個命令.別再用那種下壓縮包來解壓這種操作了,看著真的太low了.直接git clone 加地址就可以了.
    地址有兩種形式.
//  http的
https://github.com/MengTo/Spring.git
git clone https://github.com/MengTo/Spring.git
// ssh的
git@github.com:MengTo/Spring.git
git clone git@github.com:MengTo/Spring.git

去拉這種開源項目沒有什么問題,但是如果是公司私有的,那么你一定要在項目組中才行.

  1. 然后就開取開發(fā),編寫代碼,之后怎么提交問題.
    在提交之前要做一個事情,那就是完善一下個人信息,要不交上去了,誰知道是你提交的.要用到兩個命令.其實也就是對配置文件的更改,所以可以直接更改配置文件,當然不去動配置文件,那么直接用命令修改要更改的配置也行.
git config --global(這個是圖個方便,如果這電腦多個人在使用,同時開發(fā)不同的項目,那么就不要用這個參數了.這是全局變量) user.name "手握日月摘星晨,世間無我這般人",這名字真好.
git config --global user.mail "nb@gamil.com" 

這樣就可以了.

克隆下來的項目,一般來說項目的倉庫地址是配置好的,那么就可以不用配置了.不過也有直接開發(fā)的項目,然后直接往倉庫推的,那么就有一個添加倉庫地址的命令.


image.png

image.png
// 先查看一下有沒有地址
git remote -v
看這是添加好的,如果沒有怎么添加呢.
git remote add 名稱 地址
eg: git remote add dev git@github.com:MengTo/Spring.git
//加錯了怎么辦,那就刪除嘛
git remote remove dev(這里直接給名稱就可以了)

//然后要做的是新建一個分支,因為不會直接在develop分支上面直接做開發(fā)的,如果你遇到這樣的公司那么直接跑路,因為太不規(guī)范了.以下就涉及到分支的概念了.

一般有以下的兩種

  1. 一種是直接fork到自已帳戶下,然后開發(fā),再merge倉庫的代碼,然后推上去,提mergerequest.管理員審核,如果可以,就會合代碼.
  2. 另一種就是直接通過分支來解決.通過拉新的分支來開發(fā),然后merge開發(fā)分支,之后提交代碼提合并請求.

但是共同點都是要先merge,再提交.

這里要先講一下分支的操作:

//查看分支列表.(-l (local)本地 -a (all)全部 -r(remote) 遠端倉庫 )
git branch -l
//分支名如果存在切換到該分支,不存在則新建.(新建的規(guī)則是從當前所在分支復制一分相同的代碼.)
git brach 分支名 
//切換分支名一般用的這個命令
git checkout 分支名

//以上都做好了,那么就可以在寫好代碼提交了.


image.png

提交代碼的步驟:
i .先查看文件的狀態(tài):修改過的,是紅色的,同時沒有添加到索引區(qū).

git status

ii. 然后將要提交的文件加入到索引區(qū)


image.png

image.png
git add 文件名 
// 如果全部添加的話
git add .

這里又出現問題了,那么我們如果加錯文件了怎么辦,當然是有撤銷操作的.


image.png

image.png
//這個是刪除命令,有點暴力
git rm --cached 文件名
//溫柔一點的,不加文件名就是所有了.
git reset 文件名
image.png

image.png

iii. 如果前面的沒有問題那就是可以提交了,commit,這樣會先暫到本地的倉庫,此時還沒有到遠端倉庫.具體的命令是:

// 提交記錄:
git commit -m "提交信息"
//查看提交記錄
git log

注意了:如果一個分支你有很多次提交,比較加了一個"," 添加一行代碼,都提交,那么提交記錄是不是就很多了.


image.png

估計你領導看見不會太開心,哪有這樣寫代碼的.當然有時候要處理別的分支的代碼而你又在開發(fā),就暫時的保存一下,但結果就是不好看,領導也不會看過程不是.所以就有一個合并提交記錄的操作.


image.png
image.png
image.png
image.png

image.png
image.png
image.png
image.png
image.png

至此我們就完成了記錄的合并修改.涉及的命令:

//修改記錄:~~表示之前的所有,~2表示前兩次
git rebase -i HEAD~~ 

已經修改了,分為兩種情況,
a. 這個分支是新建,遠端倉庫沒有,那么直接fetch一下,更新一下本地分支的代碼.
b. 如果這個分支遠端倉庫有,那么要先pull,拉取和本地的代碼比較,有沖突的地方要解決,然后再是merge,develop分支的代碼.否則代碼push到遠端分支會出錯,要二次解決沖突.

git fetch

git pull

git merge origin/develop(倉庫名/分支名)

//最后推到遠端倉庫.->提merge request
git push

前面提到一個問題.那就是如果我們臨時要切換分支,而我們的代碼以沒有開發(fā)完,不想commit怎么辦.git提供了一個暫存的操作.


image.png

image.png

image.png

// 我新添加的沒有了,將其放到了緩存中.


image.png

//完成其他分支修改后,取出緩存中的內容
image.png

image.png
// 涉及的命令有:
//查看緩存列表
git stash list
//存儲操作
git stash save "存儲內容信息"
//取出緩存:pop 取出并刪除. apply是取出不刪除.
git stash pop stash@{0}

我們提交時都會遇到一個問題,那就是commit的內容沒有完整,想修改一下,那要怎么做呢.


image.png

image.png

image.png
git commit --amend
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

友情鏈接更多精彩內容