git命令

1.強(qiáng)制推送(慎用呼巷,除非你認(rèn)為其他沖突等可以丟棄 或者不是很重要)

git push -- force

2.創(chuàng)建文件等小命令

touch a // 創(chuàng)建一個(gè)a文件
echo 1234 >> a // 把1234這個(gè)內(nèi)容放入a文件
cat a // 打開a文件 讀取出a文件中的內(nèi)容
mkdir test // 創(chuàng)建test文件夾
rm 文件名 // 刪除文件
pwd // 打印當(dāng)前工作路徑

3.安裝git的時(shí)候 都會(huì)安裝git bash和git GUI 我們完全也可以使用git GUI來提交版本 與sourcetree等功能相同

gitk // 用git命令快速打開git GUI

4.文件信息

ls // 查看當(dāng)前路徑下面的所有文件名
ls 文件夾名 // 查看對應(yīng)文件夾中的內(nèi)容
ls -l // 拉出最近git提交記錄以及對應(yīng)修改的文件名
ls -l -a // 拉出最近git提交記錄以及對應(yīng)修改的文件名羞秤,隱藏的文件也會(huì)顯示

5.cd快速切換路徑

cd ~ // 將工作路徑快速切換到root
cd - // 將工作路徑切換到上一狀態(tài)
cd ../ // 切回到上一個(gè)工作路徑
cd 文件夾名 // 進(jìn)入某個(gè)目錄
cd / // 進(jìn)入根目錄
  1. vim模式
vim 文件名 // 新建一個(gè)文件
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 地址 // 克隆遠(yuǎn)程倉庫
git clone -b 分支名 地址 // 克隆分支的代碼到本地
git status // 查看狀態(tài)
git add 文件名 // 將某個(gè)文件存入暫存區(qū)
git add b c //把b和c存入暫存區(qū)
git add . // 將所有文件提交到暫存區(qū)
git add -p 文件名 // 一個(gè)文件分多次提交
git stash -u -k // 提交部分文件內(nèi)容 到倉庫 例如本地有3個(gè)文件 a b c 只想提交a b到遠(yuǎn)程倉庫 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)成良好提交習(xí)慣 例如 git commit -m "變更(范圍):變更的內(nèi)容"

8.存儲(chǔ)密碼憑證 設(shè)置別名 獲取config信息以及配置

git config --list // 獲取config信息
git config --global core.safecrlf false // 去掉git add 命令后 出現(xiàn)的一堆CR LF提示信息
其中CR是回車的意思 LF是換行
git config --global credential.helper wincred // 存儲(chǔ)憑證 (可用于輸入一次用戶密碼后球榆,不再輸入 有時(shí)我們已經(jīng)用SSH key 綁定關(guān)聯(lián)好了 但是每次git提交的時(shí)候 還是需要你輸入用戶名密碼 在這個(gè)時(shí)候 敲入這個(gè)命令 將憑證存儲(chǔ)起來 用戶名密碼就不需要再次輸入了)
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 // 列出打算清除的檔案(首先會(huì)對工作區(qū)的內(nèi)容進(jìn)行提示)
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.查看提交內(nèi)容

git hi -5 // 查看前5條內(nèi)容
git hi --grep hello // 過濾提交信息里有hello字眼的內(nèi)容

14.修改文件名以及移動(dòng)

git mv a b // 把a(bǔ)文件名字改成b 并且直接放入git add后的暫存區(qū)
git mv b ./demos/ // 把b文件移動(dòng)到demos文件夾下

15.對比工作區(qū)焦除,暫存區(qū),倉庫的差異

git diff // 查看變更 工作區(qū)與暫存區(qū)的差異比對
git diff --cached // 暫存區(qū)與提交版本的差異
git diff HEAD // 工作區(qū)與倉庫中最后一次提交版本的差別
git diff 版本哈希值 版本哈希值 // 查看這2個(gè)版本哈希之間的區(qū)別
或者 git diff HEAD~數(shù)字 HEAD~數(shù)字
git tag tt HEAD~4 給倒數(shù)第5次提交打一個(gè)tag tag名字是tt
git diff tt 就是倒數(shù)第5個(gè)版本與第一個(gè)版本之間的差異
git diff --cached tt 暫存區(qū)與倒數(shù)第5個(gè)版本之間的比對

16.查看提交信息

git show HEAD // 查看最后一次提交修改的詳細(xì)信息 也可以用git show 哈希值 查看對應(yīng)的內(nèi)容
git show HEAD^ // 查看倒數(shù)第二次的提交修改詳細(xì)信息
git show HEAD^^ 或者git show HEAD~2 查看前2次變更
git show HEAD 或 git show 哈希值 或者git show tag(標(biāo)簽名) 都可以查看最近一次提交的詳細(xì)信息

17.查看信息

git log --pretty=format:'%h %ad | %s%d [%an]' --graph --date=short
// 獲取git log里的樹形詳細(xì)信息 包括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 // 查看詳細(xì)提交記錄

18.變基操作英古,改寫歷史提交 把多次提交合并起來

git rebase -i HEAD~3 變基之后的哈希值與之前的不同 證明變基是重新做的提交 把多次提交合并成了幾次提交

19.回撤操作

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 --hard commitid // 回撤到該次提交id的位置
 
git push -f -u origin 分支名 所有內(nèi)容都回撤完了 將回撤后的操作強(qiáng)制推送到遠(yuǎn)程分支

20.標(biāo)簽操作

git tag // 查看列出所有打過的標(biāo)簽名
git tag -d 標(biāo)簽名 // 刪除對應(yīng)標(biāo)簽
git tag 標(biāo)簽名字 // 在當(dāng)前倉庫打個(gè)標(biāo)簽
git tag foo -m "message" // 在當(dāng)前提交上淀衣,打標(biāo)簽foo 并給message信息注釋
git tag 標(biāo)簽名 哈希值 -m "message" // 在某個(gè)哈希值上打標(biāo)簽并且寫上標(biāo)簽的信息
git tag foo HEAD~4 // 在當(dāng)前提交之前的第4個(gè)版本上 打標(biāo)簽foo
git push origin --tags // 把所有打好的標(biāo)簽推送到遠(yuǎn)程倉庫
git push origin 標(biāo)簽名 // 把指定標(biāo)簽推送到遠(yuǎn)程倉庫
git stash // 把暫存區(qū)的內(nèi)容 暫時(shí)放在其他中 使暫存區(qū)變空
git stash list // 查看stash了哪些存儲(chǔ)
git stash pop // 將stash中的內(nèi)容恢復(fù)到當(dāng)前目錄,將緩存堆棧中的對應(yīng)stash刪除
git stash apply // 將stash中的內(nèi)容恢復(fù)到當(dāng)前目錄召调,不會(huì)將緩存堆棧中的對應(yīng)stash刪除
git stash clear // 刪除所有緩存的stash
git pull --tags // 把遠(yuǎn)程倉庫的標(biāo)簽也拉取下來
git push origin :refs/tags/遠(yuǎn)程標(biāo)簽名 // 刪除遠(yuǎn)程倉庫的標(biāo)簽

21.分支

git branch 分支名 // 新建分支
git branch // 查看當(dāng)前所有分支
git checkout 分支名 // 檢出分支
git checkout -b 分支名 // 創(chuàng)建并切換分支
git checkout commitId 文件名(文件路徑下的文件名) 還原這個(gè)文件到對應(yīng)的commitId的版本
(例如src/page/attendance/attendanceSum.vue我想把它還原到2個(gè)版本之前 首先git log src/page/attendance/attendanceSum.vue找到對應(yīng)想要還原的版本
復(fù)制版本提交的commitID 然后執(zhí)行g(shù)it checkout commitID src/page/attendance/attendanceSum.vue
這樣就把a(bǔ)ttendanceSum.vue這個(gè)單個(gè)文件 還原到了對應(yīng)版本)
git branch -v // 查看分支以及提交hash值和commit信息
git merge 分支名 // 把該分支的內(nèi)容合并到現(xiàn)有分支上
git branch -d 分支名 // 刪除分支
git branch -D 分支名 // 強(qiáng)制刪除 若沒有其他分支合并就刪除 d會(huì)提示 D不會(huì)
git branch -m 舊分支名 新分支名 // 修改分支名
git branch -M 舊分支名 新分支名 // 修改分支名 M強(qiáng)制修改 若與其他分支有沖突也會(huì)創(chuàng)建(慎用)
git branch -r // 列出遠(yuǎn)程分支(遠(yuǎn)程所有分支名)
git branch -a // 查看遠(yuǎn)程分支(列出遠(yuǎn)程分支以及本地分支名)
git fetch // 更新remote索引
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末膨桥,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子唠叛,更是在濱河造成了極大的恐慌只嚣,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,372評論 6 498
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件艺沼,死亡現(xiàn)場離奇詭異册舞,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)障般,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,368評論 3 392
  • 文/潘曉璐 我一進(jìn)店門调鲸,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人挽荡,你說我怎么就攤上這事藐石。” “怎么了定拟?”我有些...
    開封第一講書人閱讀 162,415評論 0 353
  • 文/不壞的土叔 我叫張陵于微,是天一觀的道長。 經(jīng)常有香客問我青自,道長株依,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,157評論 1 292
  • 正文 為了忘掉前任性穿,我火速辦了婚禮勺三,結(jié)果婚禮上雷滚,老公的妹妹穿的比我還像新娘需曾。我一直安慰自己,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,171評論 6 388
  • 文/花漫 我一把揭開白布呆万。 她就那樣靜靜地躺著商源,像睡著了一般。 火紅的嫁衣襯著肌膚如雪谋减。 梳的紋絲不亂的頭發(fā)上牡彻,一...
    開封第一講書人閱讀 51,125評論 1 297
  • 那天,我揣著相機(jī)與錄音出爹,去河邊找鬼庄吼。 笑死,一個(gè)胖子當(dāng)著我的面吹牛严就,可吹牛的內(nèi)容都是我干的总寻。 我是一名探鬼主播,決...
    沈念sama閱讀 40,028評論 3 417
  • 文/蒼蘭香墨 我猛地睜開眼梢为,長吁一口氣:“原來是場噩夢啊……” “哼渐行!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起铸董,我...
    開封第一講書人閱讀 38,887評論 0 274
  • 序言:老撾萬榮一對情侶失蹤祟印,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后粟害,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體蕴忆,經(jīng)...
    沈念sama閱讀 45,310評論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,533評論 2 332
  • 正文 我和宋清朗相戀三年我磁,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了孽文。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,690評論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡夺艰,死狀恐怖芋哭,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情郁副,我是刑警寧澤减牺,帶...
    沈念sama閱讀 35,411評論 5 343
  • 正文 年R本政府宣布,位于F島的核電站存谎,受9級特大地震影響拔疚,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜既荚,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,004評論 3 325
  • 文/蒙蒙 一稚失、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧恰聘,春花似錦句各、人聲如沸吸占。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,659評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽矾屯。三九已至,卻和暖如春初厚,著一層夾襖步出監(jiān)牢的瞬間件蚕,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,812評論 1 268
  • 我被黑心中介騙來泰國打工产禾, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留排作,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 47,693評論 2 368
  • 正文 我出身青樓亚情,卻偏偏與公主長得像纽绍,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個(gè)殘疾皇子势似,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,577評論 2 353

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