微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Git用法:基本用法

仅克隆最新节点

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之后本地库落后于远程库一个版本,因此需要强制提交。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐