删除文件夹下的所有 .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
需要知道,我们的源可以是本地的路径