Git:
分支切換error: The following untracked working tree files would be overwritten by checkout:
git clean -d -fx
git clean -d -fx表示:刪除一些沒(méi)有g(shù)it add的文件谭贪;
git clean參數(shù)
? ? -n 顯示將要?jiǎng)h除的文件和目錄境钟;
? ? -x -----刪除忽略文件已經(jīng)對(duì)git來(lái)說(shuō)不識(shí)別的文件
-d -----刪除未被添加到git的路徑中的文件
-f -----強(qiáng)制運(yùn)行
? ? git clean -n
? ? git clean -df
? ? git clean -f
如果在修改時(shí)發(fā)現(xiàn)修改錯(cuò)誤,而要放棄本地修改時(shí)俭识,
一慨削,
未使用git add緩存代碼時(shí)。
可以使用git checkout -- filepathname(比如:git checkout -- readme.md套媚,不要忘記中間的“--”缚态,不寫(xiě)就成了檢出分支了!凑阶!)猿规。放棄所以的文件修改可以使用git checkout .命令衷快。
此命令用來(lái)放棄掉所有還沒(méi)有加入到緩存區(qū)(就是 git add 命令)的修改:內(nèi)容修改與整個(gè)文件刪除宙橱。但是此命令不會(huì)刪除掉剛新建的文件。因?yàn)閯傂陆ǖ奈募€沒(méi)已有加入到 git 的管理系統(tǒng)中蘸拔。所以對(duì)于git是未知的师郑。自己手動(dòng)刪除就好了。
二调窍,
已經(jīng)使用了? git add 緩存了代碼宝冕。
可以使用git reset HEAD filepathname(比如:git reset HEAD readme.md)來(lái)放棄指定文件的緩存,放棄所以的緩存可以使用git reset HEAD .命令邓萨。
此命令用來(lái)清除 git? 對(duì)于文件修改的緩存地梨。相當(dāng)于撤銷(xiāo) git add 命令所在的工作。在使用本命令后缔恳,本地的修改并不會(huì)消失宝剖,而是回到了如(一)所示的狀態(tài)。繼續(xù)用(一)中的操作歉甚,就可以放棄本地的修改万细。
三,
已經(jīng)用git commit提交了代碼纸泄。
可以使用git reset --hard HEAD^來(lái)回退到上一次commit的狀態(tài)赖钞。此命令可以用來(lái)回退到任意版本:git reset --hard? commitid
你可以使用?git log?命令來(lái)查看git的提交歷史。git log 的輸出如下,之一這里可以看到第一行就是 commitid:
commit?cf0d692e982d8e372a07aaa6901c395eec73e356(HEAD -> master)
Author: toyflivver <2440659688@qq.com>
Date: Thu Sep 28 14:07:14 2017 +0800
多余的空行
commit?14aa4d7ad4ac6fba59b4b8261d32e478e8cc99ff
Author: toyflivver <2440659688@qq.com>
Date: Thu Sep 28 14:06:44 2017 +0800
正常的代碼
commit da3a95c84b6a92934ee30b6728e258bcda75f276
Author: toyflivver <2440659688@qq.com>
Date: Thu Sep 28 13:58:12 2017 +0800
qbf
commit 267466352079296520320991a75321485224d6c6
Author: toyflivver <2440659688@qq.com>
Date: Thu Sep 28 13:40:09 2017 +0800
qbf
可以看出現(xiàn)在的狀態(tài)在commitid為cf0d692e982d8e372a07aaa6901c395eec73e356的提交上(有HEAD -> master標(biāo)記)聘裁。
在開(kāi)發(fā)的許多時(shí)候我們都需要使用git提供的分支管理功能。
1.新建本地分支:git checkout -b test新建一個(gè)名為:test的本地分支衡便。
2.提交本地分支:git push origin test:test將本地的test分支推送到遠(yuǎn)程倉(cāng)庫(kù)的test分支上献起。(test:test中的第一個(gè)的test表示本地分支名字,第二個(gè)test表示遠(yuǎn)程分支名字)
3.刪除本地分支:git branch -D test刪除本地的分支
4.刪除遠(yuǎn)程分支:git push origin :test? 本命令推送了一個(gè)空的分支到遠(yuǎn)程的test分支,等同于刪除遠(yuǎn)程分支
新建標(biāo)簽:git tag -a V1.1 -m "some thing"(新建標(biāo)簽前請(qǐng)先commit代碼)
推送標(biāo)簽: git push --tags (推送標(biāo)簽前請(qǐng)先推送代碼)
刪除本地標(biāo)簽:git tag -d V1.1
刪除遠(yuǎn)程標(biāo)簽:git push origin :refs/tags/V1.1
查看標(biāo)簽: git tag -l (會(huì)列出一個(gè)列表)
查看標(biāo)簽詳情: git show v0.1.1 (查看特定標(biāo)簽的詳情)
git 的 ?.gitignore 文件的作用是在代碼提交時(shí)自動(dòng)忽略一個(gè)文件征唬。不將其納入版本控制系統(tǒng)。
比如扶歪。一般我們會(huì)忽略IDE自動(dòng)生成的配置文件等摄闸。
如果一個(gè)你要忽略的文件已經(jīng)納入到了git ,也就是說(shuō)你已經(jīng)提交過(guò)這個(gè)文件了炫欺。這時(shí)再在 .gitignore 文件中添加上對(duì)它的忽略是不起作用的熏兄。
你可用:git rm -r --cache . ?命令來(lái)清空本地的git緩存。
再使用:git add . ?命令來(lái)重新提交代碼桥状。
這樣你要忽略的文件就不會(huì)在被提交了硝清。
————————————————————————————
.gitignore文件格式:
在 .gitignore文件中,一行代表一條忽略規(guī)則士飒,并且格式上支持正則式
例子:
.idea/ ? ? ? ?//忽略idea生成的配置文件
.gradle/ ? ? ?//忽略gradle生成的配置文件
out/A.class ? ? //忽略out文件夾下的A .class文件
out/*.class ? ? //忽略out文件夾下的所以得.class格式的文件