這篇博客是從2017/4/12下午開始記錄的.本來想著一次整理出經(jīng)常用的git命令乍钻,和比較常見問題的解決辦法麻裳,方便大家參考.但這樣對我自己來說喇辽,記憶不會(huì)很深刻,達(dá)不到想要的效果.所以砰诵,我決定將每天提交代碼時(shí)遇到的問題記錄下來,慢慢積累捌显,印象會(huì)更深刻.
git log
:查看提交的歷史記錄(可拿到commit-id);
git reset --hard commit-id
:將本地代碼回退到某個(gè)歷史版本茁彭;
場景:一般都是在項(xiàng)目架子剛搭起來的時(shí)候,創(chuàng)建
.gitignore
文件扶歪,并寫好相應(yīng)的忽略規(guī)則.但有時(shí)想不起來理肺,所以導(dǎo)致我們會(huì)將一些本要ignore
的文件提交了.那這時(shí)該怎么做呢?
1.刪除已track
的文件 (git rm + 要忽略的文件
)
2.添加.gitignore
文件
3.git add .
4.提交更新: git commit -m "提交注釋"
5.推送到遠(yuǎn)程倉庫: git push [remote]
場景:修改了一些代碼用來支持新功能善镰,因?yàn)檫€在進(jìn)行中所以暫時(shí)不想提交代碼妹萨。 此時(shí)發(fā)現(xiàn)線上版本出了問題需要在本地查錯(cuò)。這樣我需要臨時(shí)保存修改的文件炫欺,然后取出線上版本到工作目錄乎完。 這時(shí)我們可以這樣做:
git stash
:將本地修改的內(nèi)容暫存起來,
恢復(fù)的命令:一是用git stash apply
恢復(fù)品洛,但是恢復(fù)后树姨,stash
內(nèi)容并不刪除,你需要用git stash drop
來刪除桥状;
另一種方式是用git stash pop
帽揪,恢復(fù)的同時(shí)把stash
內(nèi)容也刪了。
git stash list
:用來查看stash
內(nèi)容辅斟。你可以多次stash
转晰,恢復(fù)的時(shí)候,先查看,然后恢復(fù)指定的stash
查邢,用git stash apply stash@{0}
命令蔗崎。
場景:向staging分支提pr有沖突;
解決方案:基于本地的開發(fā)分支再建一個(gè)分支侠坎,使用git pull
命令拉取staging(piaofang倉庫)分支代碼蚁趁,并解決沖突,再向staging
分支提pr实胸。
場景:基于新建的分支pull遠(yuǎn)程的某個(gè)分支(
origin/test
)時(shí)他嫡,會(huì)出現(xiàn)以下情況:
There is no tracking information for the current branch.
Please specify which branch you want to merge with.
See git-pull(1) for details.
git pull <remote> <branch>
If you wish to set tracking information for this branch you can do so with:
git branch --set-upstream-to=<remote>/<branch> test
git pull
失敗,原因是沒有指定本地test
分支與遠(yuǎn)程origin/test
分支的鏈接庐完,根據(jù)提示钢属,設(shè)置test
和origin/test
的鏈接:
git branch --set-upstream-to=origin/test test
提示Branch 'dev' set up to track remote branch 'dev' from 'origin'.
此時(shí)執(zhí)行git pull
命令即可成功。
git merge
命令用于合并指定分支到當(dāng)前分支门躯。
更新中~敬請期待~