git常用命令和常見(jiàn)問(wèn)題

基本命令

git  init   初始化一個(gè)本地倉(cāng)庫(kù)
git status  顯示暫存區(qū)與倉(cāng)庫(kù)區(qū)的差異
git log 查看提交記錄
git show commit 查看某次提交的詳細(xì)(commit為commit 后的那一串)
git show 查看最新一次提交
git add  --all     file path   添加文件到本地庫(kù)(file path為文件路徑)
git commit -m“describe” 提交到本地庫(kù)(describe為提交說(shuō)明)
git commit -a -m"describe" 添加所有到本地并提到本地
git pull     拉取遠(yuǎn)程庫(kù)最新文件   
git push    推送到遠(yuǎn)程倉(cāng)庫(kù)
git merge  branchName  合并(把branchName 分支合并到當(dāng)前分支)
git branch  查看所有分支
git checkout  filepath  假如filepath文件被刪除則會(huì)回復(fù)腊瑟,如果被修改則恢復(fù)之前的狀態(tài)(預(yù)測(cè)是這樣)
git checkout  branchName (切換到branchName分支)
git checkout -b branchName(新建一個(gè)branchName分支卷雕,如果branchName分支已經(jīng)存在會(huì)提示“ A branch named 'test2' already exists.”效果等同于    git branch branchName;git checkout branchName)
git branch -d branchName  刪除branchName 分支(不能刪除當(dāng)前分支尔觉,需要在其他分支刪除branchName分支)
git commit --amend   修改已經(jīng)提交的日志 
git show commit fileName  查看某次commit中具體某個(gè)文件的修改战得,沒(méi)有修改就只有文件名
git rm -r --cached .    GIT 在提交之前撤銷add操作使用

git diff branchName1 branchName2 --stat 顯示兩個(gè)分支所有有差異的文件列表
git diff branchName1 branchName2 顯示所有有差異的文件的詳細(xì)差異
git diff branchName1 branchName2  filepath  顯示指定文件filepath詳細(xì)差異

git status 先看一下add 中的文件
git reset HEAD 如果后面什么都不跟的話 就是上一次add 里面的全部撤銷了
git reset HEAD XXX/XXX/XXX.java 就是對(duì)某個(gè)文件進(jìn)行撤銷了

如果不小心 弄錯(cuò)了 git add后 萄唇, 又 git commit 了峡谊。(還沒(méi)push)
先使用
git log 查看節(jié)點(diǎn)
然后
git reset commitId

git reset commit_id (回退到上一個(gè) 提交的節(jié)點(diǎn) 代碼還是原來(lái)你修改的)
git reset –hard commit_id (回退到上一個(gè)commit節(jié)點(diǎn)趾撵, 代碼也發(fā)生了改變,變成上一次的)

還原已經(jīng)提交的修改
此次操作之前和之后的commit和history都會(huì)保留施籍,并且把這次撤銷作為一次最新的提交
git revert HEAD 撤銷前一次 commit
git revert HEAD^ 撤銷前前一次 commit
git revert commit-id (撤銷指定的版本居扒,撤銷也會(huì)作為一次提交進(jìn)行保存)
git revert是提交一個(gè)新的版本,將需要revert的版本的內(nèi)容再反向修改回去丑慎,版本會(huì)遞增喜喂,不影響之前提交的內(nèi)容。

git 代碼暫存指令:git stash
git 代碼暫存列表信息:git stash list
git 代碼應(yīng)用暫存代碼:git stash apply stash@{1}
git stash clear  清除暫存
git diff hash1 hash2 --stat 對(duì)比兩次提交的不同


clear 清屏

source tree Git界面化工具

git log 中文顯示亂碼

git config --global core.quotepath false;
git config --global gui.encoding utf-8;
git config --global i18n.commit.encoding utf-8;
git config --global i18n.logoutputencoding utf-8;
export LESSCHARSET=utf-8;

git 解決 fatal: Out of memory, malloc failed (tried to allocate 524288000 bytes ) 問(wèn)題

git config http.postBuffer 0
git config --global http.postBuffer 0

每次都要輸密碼問(wèn)題

git config credential.helper store

這里沒(méi)有--global意思是指只對(duì)這個(gè)倉(cāng)庫(kù)生效竿裂,建議以后都不要加--global讓代碼配置以倉(cāng)庫(kù)為單位存儲(chǔ)就好玉吁,設(shè)置成全局不靈活打開(kāi).git文件夾的.config文件,會(huì)發(fā)現(xiàn)多了兩行

[credential]

helper=storegit

push 到遠(yuǎn)程倉(cāng)庫(kù)腻异,輸入用戶名和密碼进副,注意要輸入正確的

再次運(yùn)行g(shù)it push 就不用輸入用戶名和密碼了在用戶主目錄文件夾多了一個(gè)文件git-credentials,這個(gè)就是用來(lái)存儲(chǔ)用戶名和密碼的

也可以在第2步時(shí)指定此文件文件名和存儲(chǔ)位置

--file ~/git-credentials

~代表當(dāng)前目錄

也可以使用創(chuàng)建windows系統(tǒng)環(huán)境變量的方式悔常,道理都是一樣影斑,讓系統(tǒng)知道去哪里找這個(gè)用戶名和密碼就好

身份驗(yàn)證失敗给赞,重新驗(yàn)證 控制面板\用戶帳戶\憑據(jù)管理器配置憑證

git config --system --unset credential.helper

之后再進(jìn)行g(shù)it操作時(shí),彈出用戶名密碼窗口矫户,輸入即可

打印所有標(biāo)簽 git tag

打印符合檢索條件的標(biāo)簽 git tag -l 1.*.* 
查看對(duì)應(yīng)標(biāo)簽狀態(tài) git checkout 1.0.0 
創(chuàng)建輕量標(biāo)簽 git tag 1.0.0-light 
創(chuàng)建帶備注標(biāo)簽(推薦) git tag -a 1.0.0 -m "這是備注信息" 
針對(duì)特定commit版本SHA創(chuàng)建標(biāo)簽 git tag -a 1.0.0 0c3b62d -m "這是備注信息"
刪除標(biāo)簽(本地) git tag -d 1.0.0 
將本地標(biāo)簽發(fā)布到遠(yuǎn)程倉(cāng)庫(kù) 發(fā)送所有 git push origin --tags
指定版本發(fā)送 git push origin 1.0.0 
刪除遠(yuǎn)程倉(cāng)庫(kù)對(duì)應(yīng)標(biāo)簽 // Git版本 > V1.7.0 git push origin --delete 1.0.0 // 舊版本Git git push origin :refs/tags/1.0.0

如指定關(guān)鍵字為“init”的所有提交

git log --grep=init

篩選查看日志

git log --since="July 7"  查7月7號(hào)之后的log
git log --before="July 7"查7月7號(hào)之前的log
git log --author="作者"   只看這個(gè)人提交的
git log --pretty=oneline 單行顯示提交id和日志
git log --pretty=format:"%h - %an, %ar : %s"格式化顯示提交日志
    
   選項(xiàng)
說(shuō)明
%H 提交的完整哈希值
%h 提交的簡(jiǎn)寫哈希值
%T 樹(shù)的完整哈希值
%t 樹(shù)的簡(jiǎn)寫哈希值
%P 父提交的完整哈希值
%p 父提交的簡(jiǎn)寫哈希值
%an 作者名字
%ae 作者的電子郵件地址
%ad 作者修訂日期(可以用--date =選項(xiàng)來(lái)定制格式)
%ar 作者修訂日期片迅,按多久以前的方式顯示
%cn 提交者的名字
%ce 提交者的電子郵件地址
%cd 提交日期
%cr 提交日期(距今多長(zhǎng)期)
%s 提交說(shuō)明 
    
git log dev ^master 查看 dev 有,而 master 中沒(méi)有的
git log master..dev 查看 dev 中比 master 中多提交了哪些內(nèi)容
git log dev...master 不知道誰(shuí)提交的多誰(shuí)提交的少皆辽,單純想知道有什么不一樣
git log --left-right dev...master在上述情況下柑蛇,再顯示出每個(gè)提交是在哪個(gè)分支上注意 commit 后面的箭頭,根據(jù)我們?cè)?–left-right dev…master 的順序驱闷,左箭頭 < 表示是 dev 的耻台,右箭頭 > 表示是 master的。

在 git commit 的時(shí)候會(huì)出現(xiàn) MERGE_HEAD 沖突:

error: You have not concluded your merge (MERGE_HEAD exists).
hint: Please, commit your changes before merging.
fatal: Exiting because of unfinished merge.
基本上遗嗽,使用保留本地修改的方式就可以解決這個(gè)沖突:
git merge --abort
git reset --merge
git pull
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末粘我,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子痹换,更是在濱河造成了極大的恐慌征字,老刑警劉巖,帶你破解...
    沈念sama閱讀 222,378評(píng)論 6 516
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件娇豫,死亡現(xiàn)場(chǎng)離奇詭異匙姜,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)冯痢,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,970評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門氮昧,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人浦楣,你說(shuō)我怎么就攤上這事袖肥。” “怎么了振劳?”我有些...
    開(kāi)封第一講書人閱讀 168,983評(píng)論 0 362
  • 文/不壞的土叔 我叫張陵椎组,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我历恐,道長(zhǎng)寸癌,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書人閱讀 59,938評(píng)論 1 299
  • 正文 為了忘掉前任弱贼,我火速辦了婚禮蒸苇,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘吮旅。我一直安慰自己溪烤,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,955評(píng)論 6 398
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著氛什,像睡著了一般莺葫。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上枪眉,一...
    開(kāi)封第一講書人閱讀 52,549評(píng)論 1 312
  • 那天,我揣著相機(jī)與錄音再层,去河邊找鬼贸铜。 笑死,一個(gè)胖子當(dāng)著我的面吹牛聂受,可吹牛的內(nèi)容都是我干的蒿秦。 我是一名探鬼主播,決...
    沈念sama閱讀 41,063評(píng)論 3 422
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼蛋济,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼棍鳖!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起碗旅,我...
    開(kāi)封第一講書人閱讀 39,991評(píng)論 0 277
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤渡处,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后祟辟,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體医瘫,經(jīng)...
    沈念sama閱讀 46,522評(píng)論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,604評(píng)論 3 342
  • 正文 我和宋清朗相戀三年旧困,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了醇份。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,742評(píng)論 1 353
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡吼具,死狀恐怖僚纷,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情拗盒,我是刑警寧澤怖竭,帶...
    沈念sama閱讀 36,413評(píng)論 5 351
  • 正文 年R本政府宣布,位于F島的核電站锣咒,受9級(jí)特大地震影響侵状,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜毅整,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,094評(píng)論 3 335
  • 文/蒙蒙 一趣兄、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧悼嫉,春花似錦艇潭、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書人閱讀 32,572評(píng)論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)鲁纠。三九已至,卻和暖如春鳍寂,著一層夾襖步出監(jiān)牢的瞬間改含,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書人閱讀 33,671評(píng)論 1 274
  • 我被黑心中介騙來(lái)泰國(guó)打工迄汛, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留捍壤,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 49,159評(píng)論 3 378
  • 正文 我出身青樓鞍爱,卻偏偏與公主長(zhǎng)得像鹃觉,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子睹逃,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,747評(píng)論 2 361

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