Git分佈式版本控制器經常使用命令和使用

前言:

  使用Git版本控制器差很少有一年多的時間了,在這一年多的時間裏對這個傳說的的分佈式版本控制工具備了必定的瞭解。在實戰項目開發中,對關於如何在經過Git提交項目,以及如何使用Git命令對提交的文件進行撤銷,回退/還原,刪除等相關操做有了必定的瞭解。如下主要是我在工做,學習中對本身使用Git的一些總結。git

Git安裝教程(Windows安裝超詳細教程):

參考博客地址(該篇博客解釋的很是詳情,你們能夠對照着進行安裝):github

https://www.jianshu.com/p/414ccd423efc緩存

Git文件的四種狀態:

未跟蹤(untrack):未追蹤,表示文件爲新增長的安全

已修改(modified):表示修改了文件,但還沒保存到git倉庫中服務器

已暫存(staged):表示修改的文件提交到了暫存區,可是尚未提交到本地Git版本庫分佈式

已提交(committed):表示數據安全提交到了本地Git版本庫工具

Git工做的四個區域:

Working Directory(工做目錄):即正在編輯的文件狀態。文件狀態爲未跟蹤(untrack)和已修改(modified)在此區域內學習

Staging Area(暫存區):保存了下次將提交的文件列表信息。文件狀態爲已暫存(staged)在此區域內fetch

Repository(本地倉庫):提交到本地倉庫的文件spa

Repository(遠程倉庫):已提交到遠程計算機內的文件

提交流程爲:工做區》暫存區》本地版本庫》遠程版本庫

多個Git帳號的登陸與切換:

在Git Bash Here的控制檯裏輸入:

git config --global user.name "你的名稱"
git config --global user.email "你的郵箱"

切換完成後,查看對應的帳號:
git config user.name
輸出帳號名稱:YSGStudyHards 

詳情參考博客:https://blog.csdn.net/qq_36602939/article/details/79794686 

查看Git項目遠程倉庫地址:

git remote -v

查看用戶名和郵箱地址:

//查看用戶名
git config user.name
//查看郵箱地址
git config user.email 

拷貝一個Git倉庫到本地:

git clone

開發環境中Git完整提交步驟:

首拉取服務器代碼:

注意:提交代碼以前,需先從服務器上面拉取代碼,以防覆蓋別人代碼!

git pull 

查看當前工做目錄樹的工做修改狀態(這個命令在git中使用最頻繁了,緣由會告訴你下一步該作的事情):

git status  

將工做區修改添加的文件提交到暫存區:

git add + 文件

git add -u + 路徑:將修改過的被跟蹤代碼提交緩存

git add -A + 路徑: 將修改過的未被跟蹤的代碼提交至緩存  

將暫存區代碼提交到本地倉庫中:

git commit -m 「功能修改,這裏是註釋」    

將代碼推送到服務器(主分支):

git push origin master  

Git提交過程遇到問題:

誤將代碼提交到暫存區中(git add):

解決辦法:利用 git reset 命令將撤回緩存中的代碼。

誤將暫存區代碼提交到本地倉庫(git commit):

解決辦法:

git reset —soft + 版本號

回退到某個版本,只回退了commit的信息,不會改變已經修改過的代碼。

git reset —hard + 版本號

完全回退到某個版本,本地的代碼也會改變上一個版本內容

git pull和git fetch的用法及區別:

git pull (拉取):

  是拉取遠程分支更新到本地代碼庫的操做,好比遠程倉庫的學習資料有更新,須要把新的內容下載下來,可使用git pull 是至關於從遠程倉庫獲取最新版本,而後再與本地分支merge(合併)!

git fetch (提取):

  理解 fetch 的關鍵, 是理解 FETCH_HEAD,FETCH_HEAD指的是: 某個branch在服務器上的最新狀態’。這個列表保存在 .Git/FETCH_HEAD 文件中, 其中每一行對應於遠程服務器的一個分支。

當前分支指向的FETCH_HEAD, 就是這個文件第一行對應的那個分支,使用git fetch獲取遠程倉庫最新代碼,可是不會自動合併(merge),git fetch更安全一些,由於在merge(合併)前,咱們能夠查看更新狀況,而後再決定是否合併。

Git撤銷,回退/還原,刪除操做:

 Git取消從工做區提交到暫存區的文件追蹤:

在使用git的時候,有些文件是不須要上傳的,因此就能夠修改 
例如:
若是是對全部文件都取消跟蹤的話,就是
git rm -r --cached .   //不刪除本地文件
git rm -r --f .   //刪除本地文件【不推薦使用,由於會把本地的文件也給刪除了】
 
對某個文件取消跟蹤
git rm --cached readme1.txt    //刪除readme1.txt的跟蹤,並保留在本地(推薦使用)
git rm --f readme1.txt    //刪除readme1.txt的跟蹤,而且刪除本地文件。

工做區於暫存區之間的提交回退操做:

# 添加指定文件到暫存區
git add [file1] [file2] ...
# 添加指定目錄到暫存區,包括子目錄
git add [dir]
# 添加當前目錄的全部文件到暫存區
git add .
#當咱們須要刪除暫存區或分支上的文件, 同時工做區也不須要這個文件了, 可使用
git rm file_path
#當咱們須要刪除暫存區或分支上的文件, 但本地又須要使用, 這個時候直接push那邊這個文件就沒有,若是push以前從新add那麼仍是會有。
git rm --cached file_path(文件名稱,ysg.txt)
#直接加文件名   從暫存區將文件恢復到工做區,若是工做區已經有該文件,則會選擇覆蓋
#加了【分支名】 +文件名  則表示從分支名爲所寫的分支名中拉取文件 並覆蓋工做區裏的文件
git checkout

版本庫回退到工做區:  

【這裏操做是已經提交了在本地代碼庫的操做】
#去掉上一次的提交(會直接變成add以前狀態,即取消追蹤)   
git reset HEAD^ 
#去掉上一次的提交(變成add以後,commit以前狀態) 
git reset --soft  HEAD^  

查看提交歷史:

git log                         # 查看提交歷史
git log -p <file>               # 查看指定文件的提交歷史
git blame <file>                # 以列表方式查看指定文件的提交歷史
git log --oneline               # 查看提交日誌,而且只顯示第一行

合併與衍合:

git merge <branch>               # 合併指定分支到當前分支
git merge --abort                # 取消當前合併,重建合併前狀態
git merge dev -Xtheirs           # 以合併dev分支到當前分支,有衝突則以dev分支爲準
git rebase <branch>              # 衍合指定分支到當前分支  

Git拉取時設置拉取深度:

git clone --depth=1 git@github.com:xxx.git

Git查看分支查看:

git branch -vv 查看當前開發分支
git branch  查看本地全部分支
git branch -r  查看遠程全部分支
git branch -a  查看本地和遠程全部分支
相關文章
相關標籤/搜索