1. 程式人生 > >git使用和常見命令

git使用和常見命令

1、剛下載安裝完git後,初次配置:

// 先設定郵箱和使用者名稱,用於提交的時候驗證的
git config --global user.name "xxx" 
git config --global user.email "xxx"

2、準備一個要clone的專案(碼雲、github、gitlab都可以),比如連結地址為: https://gitee.com/ xxxxxx.git (這個只是示範,不是真實有效的地址)


3、找一個空目錄,用於存放程式碼檔案的,在目錄中右鍵,選擇git bash。調出命令面板。執行以下語句:

git init  // 初始化一個空倉庫
git remote add origin https://gitee.com/ xxxxxx.git  // 關聯到遠端倉庫(這裡需要換成自己的專案地址)
git pull origin master  // 獲取遠端倉庫內容  pull就是獲取的命令
或 ---------------------------------------------------------------------
git clone https://gitee.com/ xxxxxx.git   // 如果不用上面的語句,也可以直接執行clone命令。效果和上面的命令一樣。

如果是clone私有的專案,可能需要你輸入帳號密碼,輸入後會自動把專案下載下來。


4、通常養成一個好的習慣,在下載程式碼後,新建一個自己的分支,再去修改檔案的內容,通常不要直接在master(預設分支)上直接開發。(至於為什麼要建立那麼多分支進行開發,也不是一兩句說的清楚的)

執行以下語句,建立並切換到dev_test分支(注意圖中紅色圈住的區別,意思就是你當前在哪個分支下)
git checkout -b dev_test

主要紅色框圈住的區別
我們也可以試下,建立一個已存在的分支
在這裡插入圖片描述

// 分支相關命令:
git branch  // 檢視分支

git branch dev_test  // 建立一個名為dev_test的分支

git checkout dev_test // 切換到名為dev_test的分支

git checkout -b dev_test // 建立並切換到dev_test的分支(常用)

git merge dev_test 
// 把dev_test的分支合併到當前分支

git branch -d dev_test 刪除名為dev_test的分支

git branch -D dev_test  //強行刪除一個名為dev_test的分支

5、在分支上(或者在master上)修改好了檔案的內容,準備提交到遠端倉庫。可以通過命令檢視修改的內容和狀態

git status  // 檢視檔案狀態
//(看到紅色的就是已經修改過的檔案,而且沒新增到倉庫中)
// (綠色的代表修改過的檔案,已經新增到本地倉庫,還沒提交到遠端倉庫)


git add .   // 把所有修改過的檔案,把需要提交的檔案打包起來
或者執行
git add -A  // 和git add .效果一樣


// 這時候在執行git status就會看到檔案都變綠色了

git commit -m '本次提交的備註' 
// 剛才的add .只是把所有檔案打包起來,git commit 才是提交到本地倉庫,-m 後面是本次提交檔案的備註

git push origin dev_test
// push 把本地倉庫的內容推送到遠端倉庫 
// origin 這個是預設的
// dev_test  代表dev_test分支,剛才我們是建立了dev_test分支,如果想推送到其他分支,就改成其他分支名稱即可

如果不出意外,會成功提交,可以到自己專案那裡,找到對應的分支檢視是否已經推送上去。

當然意外還是會有的,比如和你一起開發的人,比你早推送了一個版本到遠端倉庫中,那麼你在推送的時候,會報一個錯誤,提示需要先合併程式碼(注意只是合併程式碼,不是合併分支)如:
在這裡插入圖片描述

如果線上的程式碼,沒有衝突,那麼pull下來後,你就可以重新執行git push origin master 命令,把程式碼提交上去了(通常git會幫我們合併一些程式碼,並不會造成衝突)。當然還會有衝突的情況(比如2個人同時修改了同一個檔案的同一個地方),那麼使用pull命令就會變成這樣:
在這裡插入圖片描述
這時候就可以全域性搜尋一下>>>>>這個代表衝突開始的地方
在這裡插入圖片描述
解決衝突也很簡單,只要保留其中一個地方就可以了。把<<<<開頭到 >>>>結尾的地方,改成正確的程式碼,然後重新執行 git add .git commit -m '備註'git push roigin master 。 重新推送上去就可以了
在這裡插入圖片描述


6、假設我們開發的dev_test分支測試通過了,需要合併到master分支
那麼就執行切換分支的命令,
1)切換到master分支
2)在master分支下 使用 git pull 確保master分支的程式碼是最新的
3)使用合併分支的命令 git merge dev_test
4)然後在使用git push origin master 推送到遠端倉庫的master分支上


7、關於git的一些拓展
1)假設修改的檔案修改錯了。這次並不想提交這個檔案

  • 解決方法1:刪除該檔案,在使用git add .
  • 解決方法2:先使用git add . 然後執行 git resert head 需要撤回的檔名git reset head 需要撤回的檔名
    在這裡插入圖片描述

2)關於一些一直都不想提交的檔案(比如使用vscode的時候,會有一個
.vscode的資料夾,和程式碼無關,不想提交到遠端倉庫,可是又不希望每次都剔除)

  • 可以使用預設的一個檔案,新增要排除的東西 .gitignore 檔案。可能在window下不能直接建立,那就在git bash 中,使用 touch .gitignore 。就會發現多了這麼一個類似txt檔案。然後在裡面新增需要剔除的內容,一行一個
  • 比如:這樣就可以一勞永逸,不用每次都擔心把額外的檔案提交上去了(碼雲或者其他平臺已經有很多gitignore檔案模版,在建立專案的時候可以留意下)在這裡插入圖片描述

3)關於git的其他一些命令

  • 檢視檔案修改的內容:.git diff 檔名
  • 有時候自己改了很多地方,可是並不像儲存,想重新下載一份線上的程式碼:
	git fetch --all  
	git reset --hard origin/master 
	git pull

  • 臨時儲存工作區(用的相對較少)
    git stash  //把當前的工作臨時儲存起來,然後自己切換分支做其他的事情
    git stash list  //檢視儲存的工作區列表
    git stash pop  //恢復最近的一次工作,並且刪除記錄(常用)
    git stash apply [email protected]{id}  //恢復指定id的工作,不過不會刪除記錄
    git stash drop   //刪除

  • 標籤
    git tag <name>  為當前分支打一個 name 的標籤
    git tag <name> 1586156  為歷史提交打標籤  1586156為歷史提交的一個id號
    git tag    檢視標籤
    git push origin <tagname>可以推送一個本地標籤;
    git push origin --tags可以推送全部未推送過的本地標籤;
    git tag -d <tagname>可以刪除一個本地標籤;
    git push origin :refs/tags/<tagname>可以刪除一個遠端標籤。
    git show <name>   檢視這個tag對應的id的資訊

  • 版本控制(重點)
git log    // 檢視最近提交的版本號
git reset --hard HEAD^   (回退上一個版本,^^回退2個版本)
git reset --hard 315615   // 315615是在git log 中可以看到的
// 回退指定的版本號id(這裡的id在git log中可以看到,版本id只需要取前幾位數git就能識別出來了)
git reflog   // 記錄每一次的命令

  • 記住密碼(如果你用的不是ssh的話,每次提交 / clone 程式碼都要輸入帳號密碼)
在C盤中的使用者對應使用者的資料夾下找到
.gitconfig
追加:

[credential]
helper=store

或者終端執行
git config --global credential.helper store
這樣就會使用記住密碼