git 簡單命令筆記

2021-09-29 20:18:43 字數 3762 閱讀 6850

關於git使用,我們內部服務使用gitlab,相關使用教程就不再贅述了。

以下說的都是windows環境下使用,殊途同歸。git官網

git init

我通常很少直接在本地初始化乙個倉庫,大家基本都是從遠端clone,即便是建立新專案,在gitlab web頁面也是直接選擇建立新project,然後供大家拉取進行開發。現有專案路徑下(空資料夾,也可以不空),命令列模式

執行 git init 就會建立乙個.git資料夾子目錄,表示當前目錄以及納入版本管理。

#git status

on branch localtest

changes to be committed:

(use "git reset head ..." to unstage)

changes not staged for commit:

(use "git add ..." to update what will be committed)

(use "git checkout -- ..." to discard changes in working directory)

除了移出剛建立的檔案版本,還可以通過編輯倉庫內的.gitignore檔案來新增需要忽略的檔案或者資料夾,

以下是官方例子,舉一反三能應付大多數情況了

# no .a files 所有.a結尾的檔案不跟蹤

*.a# but do track lib.a, even though you're ignoring .a files above

# 忽略取反,我已經忽略的所有的.a檔案,但是我希望跟蹤lib.a檔案可以單獨新增

!lib.a

# only ignore the todo file in the current directory, not subdir/todo

#忽略當前目錄下的todo檔案,但是不會忽略子目錄中的todo

/todo

# ignore all files in the build/ directory 忽略build目錄下所有檔案

build/

# ignore doc/notes.txt, but not doc/server/arch.txt 忽略doc目錄下的.txt檔案但是不忽略子目錄中的

doc/*.txt

# ignore all .pdf files in the doc/ directory 忽略doc目錄下的所有.pdf檔案包括子目錄

doc/**/*.pdf

關於比較 git diff 我沒用過命令,都是在studio 右鍵檔案compare with branch絲滑得多。

git commit -m 「-m引號內的內容為本次提交的說明」

通過此命令提交在暫存區的修改,還可以通過新增-a 命令將已跟蹤但未新增到暫存區的修改提交。

舉個例子,我現在已經有了test.txt 檔案,我修改內容為abc 此時,按正常流程,

我需要先 git add text.txt 再執行git commit -m "test2"才能成功提交,通過新增-a 標籤,能省略add步驟

直接執行git commit -a -m "test2"成功提交剛剛的修改

git rm

同時刪除本地檔案並提交,studio下這個操作直接刪除後提交完事,說個特殊的,我的test.txt 上乙個版本新增到追蹤的,但是這個版本我不想追蹤它了,但是我本地還想繼續用它,只是不再納入版本控制,

執行命令git rm --cached text.txt 此時檔案text.txt依舊在本地目錄裡不會被刪除,同時下一次提交到倉庫的修改行為變成刪除檔案text.txt

f:\androidstudioprojects\test>git status

on branch localtest

changes to be committed:

(use "git reset head ..." to unstage)

這個不多說了,直接git log 輸出密密麻麻看得煩,可以這樣

git log --pretty=oneline -5 輸出最近5次提交並且單行顯示,爽多了

git log --stat -5 最近5次提交資訊,並且帶有簡略資訊,比如修改了哪些檔案

git reflog 檢視每次head變更時的日誌(包括提交),已經刪除的分支也能檢測,可以用來恢復誤刪的分支節點

先說一種情況,比方說我修改了test.txt 建立了abc.txt檔案,提交備註寫成了「修復bug1」,但是我這次提交漏掉了abc,而且修復的是bug2,粗暴的做法是再提交一次修改完事,但是就會有兩次提交記錄。如果只希望有一次提交記錄,並且修正備註,可以通過–amend命令按順序做如下操作

git commit -m '修復bug2'

git add abc.txt

git commit --amend

完成後之前提交的記錄就會被本次提交的記錄覆蓋,修正之前的提交。

已經修改但尚未提交時,撤銷對某個檔案的修改,studio沒這麼折騰,直接右鍵revert完事

git checkout -- test.txt
恢復成修改前的狀態。

git remote -v 檢視遠端倉庫簡寫(通常clone後自動建立的簡寫是origin)和位址

git remote add [remote-name] [url] 新增新的遠端倉庫

git remote set-url [remote-name] [url] 修改遠端倉庫位址

git fetch [remote-name] 拉取遠端倉庫資訊但不會對當前工作進行合併

git pull [remote-name] 拉取資料後會嘗試合併當前分支

git push [remote-name] [branch-name] 推送新分支到遠端倉庫

git remote rename [oldname] [newname] 修改遠端倉庫在本地的名稱

git remote rm [remote-name] 移除遠端倉庫,只是移除本地與遠端的關聯,不是把遠端伺服器上的倉庫給刪除了。

git tag 列出所有標籤

git tag -a [tagname] -m 「tag說明」 通常都是打附註標籤

也可以對某次修改補打標籤

git tag -a [tagname] -m 「tag說明」 [需要打標籤的提交記錄雜湊值前6位]

git push origin [tagname] 推送標籤到遠端倉庫

git tag -d [tagname] 刪除本地倉庫上的標籤

git push [remote-name] :refs/tags/[tagname] 刪除遠端倉庫的標籤

git checkout [tagname] 單純檢出打標籤時的檔案版本,不做修改

git checkout -b [branch-name] [tagname] 檢出打標籤時的檔案版本並建立新分支,用於修改後提交新版本

git branch [branch-name] 建立新分支

git checkout [branch-name] 切換到指定分支

git branch -d [branch-name] 刪除分支 studio右下角直接操作完成以上操作痛快

git branch -v 檢視當前已有分支列表

git branch --merged 檢視哪些分支已合併到當前分支

git branch --no-merged 檢視哪些分支未合併到當前分支

git branch -u [oringin/branch-name] 修改當前分支跟蹤的遠端分支

Git 簡單命令

add 新增新檔案到git 倉庫的索引中 gitadd filename mv移動或重新命名檔案 gitmv old filename new filename rm從工作目錄和git 索引中刪除檔案 gitrm filename status 檢視目前工作目錄的 狀態,自上次提交以來的新增 修改和...

Git簡單命令

建立版本庫 mkdir dres mkdir用於建立資料夾 pwd顯示當前目錄 git init 把目錄變成git可以管理的倉庫。ls ah 顯示隱藏目錄 git add readme.txt git add用於將 檔案新增 到倉庫git commit m submit a file git com...

git簡單命令

1 在github申請賬號,建立倉庫,生成倉庫位址 2 在需要上傳到資料夾中執行命令git init 3 git add 4 git commit m 注釋 把本地倉庫跟github關聯 出現錯誤 fatal remote origin already exists 先執行 git remote r...