仅克隆最新节点
Git
git merge 冲突时,只整合非当前分枝的最新版,以实现在非当前分枝的基础上,超前。
git checkout 切换分支前,记得git add . / git stash. 如果直接切,原来的分支的工作区内容会被全部照搬 到新分支工作区。
git 对于 .ignore 配置文件是按行从上到下进行规则匹配的,意味着如果前面的规则匹配的范围更大,则后面的规则将不会生效;
Git 通过子模块来解决这个问题。 子模块允许你将一个 Git 仓库作为另一个 Git 仓库的子目录。 它能让你将另一个仓库克隆到自己的项目中,同时还保持提交的独立。
另一个主要的告诫是许多人遇到了将子目录转换为子模块的问题。 如果你在项目中已经跟踪了一些文件,然后想要将它们移动到一个子模块中,那么请务必小心,否则 Git 会对你发脾气。 假设项目内有一些文件在子目录中,你想要将其转换为一个子模块。 如果删除子目录然后运行 submodule add,Git 会朝你大喊:
$ rm -Rf CryptoLibrary/
$ git submodule add https://github.com/chaconinc/CryptoLibrary
'CryptoLibrary' already exists in the index
因为git会找到相同编号的文件(mv更改文件名时)/相同名称的文件(你把之前的删了,又重新建一个同名的),对比diff然后记录。当你git submodule add一个同名的时,git一看,我擦,都不是。(这里本来git要对比“相同名称的文件”diff的,但一看是第三方库,赶紧提醒你)=》当然你可以加-f 强制执行。
git rm 和 rm
git rm 把暂存区里的也删了 (相当于 rm 后再 git add .)
-f
如果删除远程仓库的最后一次提交的时候不需要保留历史记录的话,可以使用reset,命令如下:
git reset --hard HEAD^
git push origin master -f
-f 参数是强制提交,因为reset之后本地库落后于远程库一个版本,因此需要强制提交。
原文链接:https://www.f2er.com/git/419515.html