刪除文件夾下的所有 .git 文件
$ find . -name ".git" | xargs rm -Rf
修改.gitignore后生效
$ git rm -r --cached . #清除緩存;
$ git add . #重新trace file
$ git commit -m "update .gitignore" #提交和注釋
$ git push origin master #可選,如果需要同步到remote上的話
注意 git rm -r --cached 要忽略的文件
pull會使用git merge導致沖突,需要將沖突的文件resolve掉
$ git add - u
$ git commit
然后,git pull.
git pull的時候遇到這樣的問題:
The following untracked working tree files would be overwritten by merge balabala...
解決方法:
$ git clean -d -fx
備注:會刪除掉沒有add到倉庫的文件,操作記得慎重,以免改動文件的丟失。本質上就是操作倉庫中沒有被追蹤的本地文件
以上操作,具體解釋如下
$ git clean -f -n # 1
$ git clean -f # 2
$ git clean -fd # 3
$ git clean -fX # 4
$ git clean -fx # 5
(1): 選項-n將顯示執行(2)時將會移除哪些文件。
(2): 該命令會移除所有命令(1)中顯示的文件。
(3): 如果你還想移除文件件,請使用選項-d。
(4): 如果你只想移除已被忽略的文件,請使用選項-X。
(5): 如果你想移除已被忽略和未被忽略的文件,請使用選項-x。
git add . 撤回
$ git reset HEAD . #撤銷所有的已經add的文件
$ git reset filename #撤銷某個文件或文件夾
git reset 和 git checkout 的區別
https://segmentfault.com/a/1190000006185954
誤刪除了文件找回,如eventbus.jar
$ git reset HEAD libs/eventbus.jar
$ git checkout -- libs/eventbus.jar
Tag的使用
1、使用git checkout tag即可切換到指定tag,例如:git checkout v0.1.0
2、git checkout -b branch tag創建一個基于指定tag的分支,例如:git checkout -b tset v0.1.0 這個時候就會在分支上進行開發,之后可以切換到主線合并
3、在本地倉庫給工程打標簽 git tag [tagname]
4、同步標簽到遠程倉庫
a)、push 單個tag,git push origin [tagname],比如:git push origin v1.0
b)、push 所有tag,git push [origin] --tags, 比如:git push --tags 或者 git push origin --tags
5、刪除tag
a)、本地: git tag -d v1.1
b)、遠程:
git push origin --delete tag v1.1
git push origin :v1.1
git push origin :refs/tags/v1.1
本文講的是把Git在最新2.9.2,合并pull兩個不同的項目,出現的問題如何去解決fatal: refusing to merge unrelated histories
我在Github新建一個倉庫,寫了License,然后把本地一個寫了很久倉庫上傳。
先pull,因為兩個倉庫不同,發現refusing to merge unrelated histories
,無法pull
因為他們是兩個不同的項目,要把兩個不同的項目合并,git需要添加一句代碼,在git pull
,這句代碼是在git 2.9.2版本發生的,最新的版本需要添加--allow-unrelated-histories
假如我們的源是origin,分支是master,那么我們 需要這樣寫git pull origin master ----allow-unrelated-histories
需要知道,我們的源可以是本地的路徑