git常用命令大全

1.強制推送(慎用擎厢,除非你認為其他沖突等可以丟棄 或者不是很重要)
git push -- force
2.創(chuàng)建文件等小命令
touch a // 創(chuàng)建一個a文件
echo 1234 >> a // 把1234這個內(nèi)容放入a文件
cat a // 打開a文件 讀取出a文件中的內(nèi)容
mkdir test // 創(chuàng)建test文件夾
rm 文件名 // 刪除文件
pwd // 打印當前工作路徑
3.安裝git的時候 都會安裝git bash和git GUI 我們完全也可以使用git GUI來提交版本 與sourcetree等功能相同
gitk // 用git命令快速打開git GUI
4.文件信息
ls // 查看當前路徑下面的所有文件名
ls 文件夾名 // 查看對應文件夾中的內(nèi)容
ls -l // 拉出最近git提交記錄以及對應修改的文件名
ls -l -a // 拉出最近git提交記錄以及對應修改的文件名旭寿,隱藏的文件也會顯示
5.cd快速切換路徑
cd ~ // 將工作路徑快速切換到root
cd - // 將工作路徑切換到上一狀態(tài)
cd ../ // 切回到上一個工作路徑
cd 文件夾名 // 進入某個目錄
cd / // 進入根目錄
6.vim模式
vim 文件名 // 新建一個文件
i 插入內(nèi)容
按下esc :wq 保存并退出
按下esc :q 直接退出
vim 模式下 文件中#號開頭的為注釋
.project 忽略.project文件
*.obj 或者 *.exe 忽略一類文件 例如以.obj .exe 結(jié)尾的文件
 
git check-ignore -v .project 查看ignore中.project的位置
7.常用git 命令
git init // 初始化 在工作路徑上創(chuàng)建主分支
git clone 地址 // 克隆遠程倉庫
git clone -b 分支名 地址 // 克隆分支的代碼到本地
git status // 查看狀態(tài)
git add 文件名 // 將某個文件存入暫存區(qū)
git checkout -- file // 撤銷工作區(qū)的修改 例如git checkout -- readMe.txt 將本次readMe.txt在工作區(qū)的修改撤銷掉
git add b c //把b和c存入暫存區(qū)
git add . // 將所有文件提交到暫存區(qū)
git add -p 文件名 // 一個文件分多次提交
git stash -u -k // 提交部分文件內(nèi)容 到倉庫 例如本地有3個文件 a b c 只想提交a b到遠程倉庫 git add a b 然后 git stash -u -k 再然后git commit -m "備注信息" 然后再push push之后 git stash pop 把之前放入堆棧的c拿出來 繼續(xù)下一波操作
git commit -m "提交的備注信息"  // 提交到倉庫
若已經(jīng)有若干文件放入倉庫椎咧,再次提交可以不用git add和git commit -m "備注信息" 這2步档押, 直接用
git commit -am "備注信息" // 將內(nèi)容放至倉庫 也可用git commit -a -m "備注信息"
* git commit中的備注信息盡量完善 養(yǎng)成良好提交習慣 例如 git commit -m "變更(范圍):變更的內(nèi)容"
8.存儲密碼憑證 設(shè)置別名 獲取config信息以及配置
git config --list // 獲取config信息
git config --global core.safecrlf false // 去掉git add 命令后 出現(xiàn)的一堆CR LF提示信息
其中CR是回車的意思 LF是換行
git config --global user.name"your name" // 設(shè)置username
git config --global user.email"your_email@youremail.com" // 設(shè)置郵箱
git config --global credential.helper wincred // 存儲憑證 (可用于輸入一次用戶密碼后窖维,不再輸入 有時我們已經(jīng)用SSH key 綁定關(guān)聯(lián)好了 但是每次git提交的時候 還是需要你輸入用戶名密碼 在這個時候 敲入這個命令 將憑證存儲起來 用戶名密碼就不需要再次輸入了)

git config --global alias.ci commit // 將commit命令設(shè)置別名ci git commit命令將由git ci來代替
9.查看git常用命令
git helper -a // 查看全部git子命令
10.逐行查看文件的修改歷史
git blame 文件名 // 查看該文件的修改歷史
git blame -L 100,10 文件名 // 從100行開始啦吧,到110行 逐行查看文件的修改歷史
11.清除
git clean -n // 列出打算清除的檔案(首先會對工作區(qū)的內(nèi)容進行提示)
git clean -f // 真正的刪除
git clean -x -f // 連.gitignore中忽略的檔案也刪除
git status -sb (sb是 short branch) // 簡潔的輸出git status中的信息
12.刪除放入暫存區(qū)文件的方法(已commit后)
git rm 文件名 // 將該文件從commit后撤回到add后
git reset HEAD^ --hard // 刪除后 可以用git rm 文件名再回撤一步
13.修改文件名以及移動
git mv a b // 把a文件名字改成b 并且直接放入git add后的暫存區(qū)
git mv b ./demos/ // 把b文件移動到demos文件夾下
14.對比工作區(qū),暫存區(qū)璃搜,倉庫的差異
git diff // 查看變更 工作區(qū)與暫存區(qū)的差異比對
git diff --cached // 暫存區(qū)與提交版本的差異
git diff HEAD // 工作區(qū)與倉庫中最后一次提交版本的差別
git diff 版本哈希值 版本哈希值 // 查看這2個版本哈希之間的區(qū)別
或者 git diff HEAD~數(shù)字 HEAD~數(shù)字
 
git diff tt 就是倒數(shù)第5個版本與第一個版本之間的差異
git diff --cached tt 暫存區(qū)與倒數(shù)第5個版本之間的比對
15.查看提交信息
git show HEAD // 查看最后一次提交修改的詳細信息 也可以用git show 哈希值 查看對應的內(nèi)容
git show HEAD^ // 查看倒數(shù)第二次的提交修改詳細信息
git show HEAD^^ 或者git show HEAD~2 查看前2次變更
git show HEAD 或 git show 哈希值 或者git show tag(標簽名) 都可以查看最近一次提交的詳細信息
16.查看信息
git log --pretty=format:'%h %ad | %s%d [%an]' --graph --date=short
// 獲取git log里的樹形詳細信息 包括hasg 日期 提交信息 提交人等
git log --oneline //拉出所有提交信息 q是退出
git log -5 // 查看前5次的提交記錄
git log --oneline -5 // 打印出的日志里面只有哈希值和修改的內(nèi)容備注
git log 文件名 // 查看該文件的提交
git log --grep // 想過濾看到的內(nèi)容   過濾日志
git log -n // 查看近期提交的n條信息內(nèi)容
git log -p // 查看詳細提交記錄
17.變基操作拖吼,改寫歷史提交 把多次提交合并起來
git rebase -i HEAD~3 變基之后的哈希值與之前的不同 證明變基是重新做的提交 把多次提交合并成了幾次提交
18.回撤操作
git commit --amend -m "提交信息" // 回撤上一次提交并與本次工作區(qū)一起提交
git reset HEAD~2 --hard // 回撤2步
git reset --files // 從倉庫回撤到暫存區(qū)
git reset HEAD // 回撤暫存區(qū)內(nèi)容到工作目錄
git reset HEAD --soft 回撤提交到暫存區(qū)
git reset HEAD --hard // 回撤提交 放棄變更 (慎用)
git reset HEAD^  // 回撤倉庫最后一次提交
git reset --soft HEAD^ // 將執(zhí)行g(shù)it commit 并沒有執(zhí)行g(shù)it push到遠程倉庫的內(nèi)容 回撤到工作區(qū) 并且保存在工作區(qū)
git reset --hard HEAD^ // 將執(zhí)行g(shù)it commit 并沒有執(zhí)行g(shù)it push到遠程倉庫的內(nèi)容 回撤并且不保存
// 注意 在window電腦端 可能會出現(xiàn)執(zhí)行g(shù)it reset --hard HEAD^命令時 提示More? 所以針對windows 我們回撤內(nèi)容需要鍵入git reset --hard HEAD^^才可以 如果我們git commit提交2次 想把2次都回撤到工作區(qū)保存 可以使用git reset --soft HEAD~2

git reset --hard commitid // 回撤到該次提交id的位置 回撤后本地暫存區(qū)可能有內(nèi)容 本地倉庫有要同步的內(nèi)容 此時 丟棄掉暫存區(qū)的內(nèi)容 并且強制將本地的內(nèi)容推送至遠程倉庫 執(zhí)行下面的命令 git push -u -f origin 分支名 這樣就可以完全回撤到提交id的位置

git reset --soft commitid // 回撤到該次提交id的位置 并將回撤內(nèi)容保存在暫存區(qū)

git push -f -u origin 分支名 所有內(nèi)容都回撤完了 將回撤后的操作強制推送到遠程分支

git push origin/分支名 --force 強制將本地回撤后的操作 強制推送到遠程分支
19.標簽操作
git tag // 查看列出所有打過的標簽名 例如V1.1 V1.11 V1.12 V1.13等
git tag -d 標簽名 // 刪除對應標簽 只是刪除了本地的
git push origin :refs/tags/遠程標簽名 // 刪除遠程倉庫的標簽 可以在刪除本地標簽后 執(zhí)行這個操作 同步遠程
git tag 標簽名字 // 在當前倉庫打個標簽
git tag 標簽名 commitid // 給已知提交id的版本打標簽 例如git tag v1.1.1 6f8f25fcf57a17e6c72b33f6bca0797fab15ff8b // 給歷史提交打V1.1.1的tag標簽 這里的commitid可以縮寫 縮寫成前6位就可以 例如git tag V1.1.1 6f8f25 一樣可以給這個提交id打上tag
git tag -l // 過濾tag 例如 git tag -l "V1.1*" // V1.1 V1.11 可以過濾前面是V1.1開頭的內(nèi)容
git show 標簽名稱 // 查看tag的詳細信息 包括commitid 作者信息 日期 內(nèi)容
git push origin 標簽名稱 // 同步這個tag到遠程服務器 默認tag是打在本地的 這個命令可以把它推到遠程
git push origin --tags // 將本地所有tag推送到遠程服務器
git pull --tags // 把遠程倉庫的標簽也拉取下來
git tag foo -m "message" // 在當前提交上,打標簽foo 并給message信息注釋
git tag 標簽名 哈希值 -m "message" // 在某個哈希值上打標簽并且寫上標簽的信息
git tag foo HEAD~4 // 在當前提交之前的第4個版本上 打標簽foo
 
 
git stash // 把暫存區(qū)的內(nèi)容 暫時放在其他中 使暫存區(qū)變空
git stash list // 查看stash了哪些存儲
git stash pop // 將stash中的內(nèi)容恢復到當前目錄这吻,將緩存堆棧中的對應stash刪除
git stash apply // 將stash中的內(nèi)容恢復到當前目錄吊档,不會將緩存堆棧中的對應stash刪除
git stash clear // 刪除所有緩存的stash
git reset --hard // 回撤git stash pop的內(nèi)容
20.分支
git branch 分支名 // 新建分支

git branch // 查看當前所有分支

git checkout 分支名 // 檢出分支

git checkout -b 分支名 // 創(chuàng)建并切換分支

git checkout commitId 文件名(文件路徑下的文件名) 還原這個文件到對應的commitId的版本
(例如src/page/attendance/attendanceSum.vue我想把它還原到2個版本之前 首先git log src/page/attendance/attendanceSum.vue找到對應想要還原的版本
復制版本提交的commitID 然后執(zhí)行g(shù)it checkout commitID src/page/attendance/attendanceSum.vue
這樣就把attendanceSum.vue這個單個文件 還原到了對應版本)

git branch -v // 查看分支以及提交hash值和commit信息

git merge 分支名 // 把該分支的內(nèi)容合并到現(xiàn)有分支上

git cherry-pick commitId // 把其他分支的某一次提交內(nèi)容合并到當前分支 這個在我們平時多分支開發(fā)中很常用

git branch -d 分支名 // 刪除分支

git branch -D 分支名 // 強制刪除 若沒有其他分支合并就刪除 d會提示 D不會

git branch -m 舊分支名 新分支名 // 修改分支名

git branch -M 舊分支名 新分支名 // 修改分支名 M強制修改 若與其他分支有沖突也會創(chuàng)建(慎用)

git branch -r // 列出遠程分支(遠程所有分支名)

git branch -a // 查看遠程分支(列出遠程分支以及本地分支名 遠程分支會以remote/origin/分支名這種形式展示 紅色標識)

git branch // 查看本地分支

git reflog show --date=iso <branch name> // 查看分支創(chuàng)建時間 例如git reflog show --date=iso origin/feature-PCDEC-6375 輸出 88e22885 (HEAD -> feature-PCDEC-6375, origin/feature-PCDEC-6375, origin/EC-master, EC-master) refs/remotes/origin/feature-PCDEC-6375@{2021-07-27 11:31:23 +0800}: fetch: storing head 創(chuàng)建時間就是2021-07-27 11:31:23
git fetch // 更新remote索引

git push -u origin 分支名 // 將本地分支推送到origin主機,同時指定origin為默認主機唾糯,后面就可以不加任何參數(shù)使用git push 也可解決 git建立遠程分支關(guān)聯(lián)時出現(xiàn)fatal ... upstram的問題

git push origin --delete 分支名 (將git branch -D 分支名 刪掉的分支 同步到遠程主機 將origin/分支名的該分支也刪除掉)

git remote show origin 查看remote地址怠硼,遠程分支,還有本地分支與之相對應關(guān)系等信息(結(jié)合git branch -a使用)

git remote prune origin 刪除遠程倉庫不存在的分支 (git branch -a使用)

git reflog show --date=iso 分支名 // 查看指定分支的創(chuàng)建時間 以及更改記錄等
21.git倉庫遷移
// 首先在當前項目主分支先執(zhí)行g(shù)it pull 把代碼更新為最新
git remote set-url origin <新的倉庫名>
git push -u -f origin
git push -u -f origin --all // 把所有分支遷移過去
git push -u -f origin --tags // 把所有tag遷移過去
// 然后去拉取新的倉庫代碼就可以了 如果新倉庫之前拉取過了
重新倉庫遷移 里面分支沒同步的話 執(zhí)行 git fetch試一下 同步過來

22.git配置別名

Git配置別名通常有兩種方式:
命令行配置
修改config文件
1.命令行配置別名

git config --global alias.st status //這個命令就相當于把status簡化為st移怯。

通過配置別名后以下兩個命令完全等價香璃,所以查看本地的修改狀態(tài)就可以執(zhí)行:

git status
# or
git st

如果想要增加別名,就可以在[alias]下邊添加舟误,一行對應一個別名葡秒。如果通過命令行配置的別名有誤,想修改,則可以通過刪除.gitconfig文件[alias]中對應的行同云,再重新通過命令配置或者直接修改配置文件糖权。

常用別名配置:

git config --global alias.ll  'log --oneline' // 以單行方式顯示你的提交堵腹,使輸出更緊湊:

git config --global alias.cm 'commit -m' //使用 cm 別名使 git commit -m 命令更有效率:

git官方教程

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末炸站,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子疚顷,更是在濱河造成了極大的恐慌旱易,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,386評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件腿堤,死亡現(xiàn)場離奇詭異阀坏,居然都是意外死亡,警方通過查閱死者的電腦和手機笆檀,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,142評論 3 394
  • 文/潘曉璐 我一進店門忌堂,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人酗洒,你說我怎么就攤上這事士修。” “怎么了樱衷?”我有些...
    開封第一講書人閱讀 164,704評論 0 353
  • 文/不壞的土叔 我叫張陵棋嘲,是天一觀的道長。 經(jīng)常有香客問我矩桂,道長沸移,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,702評論 1 294
  • 正文 為了忘掉前任侄榴,我火速辦了婚禮雹锣,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘癞蚕。我一直安慰自己蕊爵,他們只是感情好,可當我...
    茶點故事閱讀 67,716評論 6 392
  • 文/花漫 我一把揭開白布涣达。 她就那樣靜靜地躺著在辆,像睡著了一般。 火紅的嫁衣襯著肌膚如雪度苔。 梳的紋絲不亂的頭發(fā)上匆篓,一...
    開封第一講書人閱讀 51,573評論 1 305
  • 那天,我揣著相機與錄音寇窑,去河邊找鬼鸦概。 笑死,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的窗市。 我是一名探鬼主播先慷,決...
    沈念sama閱讀 40,314評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼咨察!你這毒婦竟也來了论熙?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,230評論 0 276
  • 序言:老撾萬榮一對情侶失蹤摄狱,失蹤者是張志新(化名)和其女友劉穎脓诡,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體媒役,經(jīng)...
    沈念sama閱讀 45,680評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡祝谚,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,873評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了酣衷。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片交惯。...
    茶點故事閱讀 39,991評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖穿仪,靈堂內(nèi)的尸體忽然破棺而出席爽,到底是詐尸還是另有隱情,我是刑警寧澤牡借,帶...
    沈念sama閱讀 35,706評論 5 346
  • 正文 年R本政府宣布拳昌,位于F島的核電站,受9級特大地震影響钠龙,放射性物質(zhì)發(fā)生泄漏炬藤。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,329評論 3 330
  • 文/蒙蒙 一碴里、第九天 我趴在偏房一處隱蔽的房頂上張望沈矿。 院中可真熱鬧,春花似錦咬腋、人聲如沸羹膳。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,910評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽陵像。三九已至,卻和暖如春寇壳,著一層夾襖步出監(jiān)牢的瞬間醒颖,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,038評論 1 270
  • 我被黑心中介騙來泰國打工壳炎, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留泞歉,地道東北人。 一個月前我還...
    沈念sama閱讀 48,158評論 3 370
  • 正文 我出身青樓,卻偏偏與公主長得像腰耙,于是被迫代替她去往敵國和親榛丢。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 44,941評論 2 355

推薦閱讀更多精彩內(nèi)容

  • 一挺庞、 Git 常用命令速查 git branch 查看本地所有分支 git status 查看當前狀態(tài) git c...
    LOVE_晴天閱讀 2,324評論 0 10
  • git branch 查看本地所有分支 git status 查看當前狀態(tài) git commit 提交 git b...
    猿萬閱讀 5,056評論 1 45
  • 一晰赞、 Git 常用命令速查git branch 查看本地所有分支git status 查看當前狀態(tài)git comm...
    Yaoxue9閱讀 624評論 0 3
  • 一、 Git 常用命令速查 git branch 查看本地所有分支 git status 查看當前狀態(tài) git c...
    甲乙丙町閱讀 208評論 0 0
  • 一挠阁、 Git 常用命令速查 增加一個遠程服務器端上面的命令會增加URL地址為'git@github.com:dai...
    阿羨吖閱讀 523評論 2 1