git使用笔记

佐手、 提交于 2020-01-08 18:02:05

1、工作区与版本库:工作区是一个包含.git子目录(内含版本库)中的目录。可以使用init命令在当前目录中创建版本库
2、版本提交:一次版本提交通常定义了版本库中所有文件的一个版本,它详细说明了版本所含数据,用add命令来确定哪些文件将被纳入下一次提交,用commit命令创建新的版本提交
3、查看信息,用status命令,查看哪些文件已被本地修改,以及哪些修改将纳入下次提交。log命令可用来显示提交历史,diff命令可以用来显示两个版本之间的差异。
4、克隆:对用clone命令创建某一版本库的副本,称为该版本库的克隆体。
5、推送与拉回:pushpull命令可用于在本地和远程版本库之间共享版本提交。
6、提交:通过commit命令可以创建一次提交。一次提交通常保存了项目的某种确定状态,其中包含了该项目中所有文件的情况。
7、选择性提交:可以用add命令来指定哪些文件将会被存储在快照中,其余所有文件将保持不变。
8、代码段选取:可以通过--interactive选项来逐行或逐段选取自己所需要的修改。
9、查看状态:status命令可以显示哪些文件被纳入了下次提交。
10、重置暂存区:通过git reset HEAD命令将所有文件重置到当前的HEAD版本
11、.gitignore文件:可以在这个文件中列出不需要被Git管理的文件目录
12、储藏:通过stash命令在工作区和暂存区中当前所做的修改储藏起来。之后用git stash pop命令将其恢复。
13、对象数据库:所有提交中的文件、目录以及相关的元数据都将被存储在该数据库中。
14、SHA1散列值:可以通过一个SHA1散列值从对象数据库中捡取相关对象。SHA1散列值是一种针对文件内容的加密校验值。
15、Blob对象:文件内容将会被存储在相应的blob对象中。
16、Tree对象:目录将被存储在相应的tree对象中,一个tree对象中通常会包含一份文件名列表,包含这些文件名和存储在blob或tree对象中内容的SHA1散列值。
17、提交图:提交对象会沿着各自的tree和Blob对象,形成一个提交图
18、重命名检测:文件的重命名和移动操作在提交之前无须报备。
19、可以通过blame命令来确定某几行代码的来源。
20、创建分支:通过branch命令来新建分支
21、Checkout:用checkout命令切换到另一个分支上
22、Reflog:git会记录我们在每次提交中对分支指针所做的所有修改。
23、垃圾处理:可以用gc命令进行清理。
24、分支合并:使用merge命令可进行分支的合并。
25、变基操作:git能将提交复制到提交图中的其他地方。尽管其中的修改与元数据将保持不变,但该复制结果会有一个新的提交散列值。可以通过rebase命令以多种方式对提交图进行重构
26、理顺历史:如果在并行式开发的过程中使用merge命令解决了其中的冲突,会得到一部经历了多次分岔与合并的历史。
27、rebase--onto 选项:可以将某一分支移动到提交图中另外一个完全不同的位置。
28、获取:fetch命令可以从远程版本的分支上获取提交。
29、远程跟踪分支:可以指定远程版本库中分支的位置,例如clonefeaturea。然后用fetchpull命令去更新该远程跟踪分支
30、pull = fetch + merge:pull命令是两种操作的组合。
31、推送:push命令可将本地分支中的提交传送给远程版本库
32、创建标签:用tag来创建标签。
33、推送:push命令可以只用来传送那些被明确指定的标签,例如git push origin1.2.3.4,如果使用 --tags 参数就不用指定标签。
34、拉回与获取:pullfetch都会自动获取其所涉及分支中的所有标签,除非在命令中使用 --no-tags 参数
35、显示所有标签:通过git tag -l命令来完成
36、在日记中显示标签:可以使用git log --decorate命令
37、共享标签中的提交:想要知道某一标签中是否包含了某一提交,可以用带 --contains 参数的tag命令。
38、嵌入子模块:可以通过submodule addsubmodule init命令来嵌入一个子模块
39、克隆包含子模块的项目:可以在克隆该项目后,对其调用submodule initsubmodule update命令
40、选择子模块中的某个新版本:通过checkout命令查看,并选择在子模块目录中的新提交,然后在主版本库中对其做一次提交
41、同时处理模块版本库与主版本库:现在模块版本库中执行提交,然后在主版本库中执行提交。必须各自执行push命令。
42、嵌入子树:通过subtree add命令来嵌入子树
43、选择子树中的某个新版本:通过subtree pull命令来将模块目录更新到所需的分支或标签上。
44、提取模块目录中的修改:通过subtree split命令创建一个单独的分支,用于包含模块目录的修改。然后使用merge命令将修改进行合并,用push推送。

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!