如图:git是一个方便快捷的版本管理控制工具,git中就有本地仓库。
需要注意的是,在使用git的过程中常常会产生临时分支,如果在切换分支之前没有commit,我们就会丢失临时分支的内容,很难找回。
index ——> 暂存区
你工作目录下的每一个文件都不外乎这两种状态:已跟踪 或 未跟踪。 已跟踪的文件是指那些被纳入了版本控制的文件,在上一次快照中有它们的记录,在工作一段时间后, 它们的状态可能是未修改,已修改或已放入暂存区。简而言之,已跟踪的文件就是 Git 已经知道的文件。
插一段知识点:
- git clone的流程:
git init(local) -> git dir(local) -> pull all in git()remote -> add remote url(local) -> checkout latest working copy(local) ->do your thing (local)
- git diff比较的是工作目录中当前文件和暂存区域快照之间的差异。 也就是修改之后还没有暂存起来的变化内容。相比git status ,他能通过文件补丁的格式更加具体地显示哪些行发生了改变
- git commit -a -m :git add . + git commit -m
- git rm 移除文件
- git mv 给文件重命名
- git log 查看文件提交历史
- 想要新建一个分支并同时切换到那个分支上,你可以运行一个带有
-b
参数的git checkout
命令:git checkout -b - git branch XXX :创建分支;
- git checkout XXX :切换分支;
- git merge XXX:合并分支;
出现冲突的文件会包含一些特殊区段,看起来像下面这个样子:
<<<<<<< HEAD:index.html
<div id="footer">contact : email.support@github.com</div>
=======
<div id="footer">
please contact us at support@github.com
</div>
>>>>>>> iss53:index.html
这表示 HEAD
所指示的版本(也就是你的 master
分支所在的位置,因为你在运行 merge 命令的时候已经检出到了这个分支)在这个区段的上半部分(=======
的上半部分),而 iss53
分支所指示的版本在 =======
的下半部分。 为了解决冲突,你必须选择使用由 =======
分割的两部分中的一个,或者你也可以自行合并这些内容。 例如,你可以通过把这段内容换成下面的样子来解决冲突:
<div id="footer">
please contact us at email.support@github.com
</div>
上述的冲突解决方案仅保留了其中一个分支的修改,并且 <<<<<<<
, =======
, 和 >>>>>>>
这些行被完全删除了。 在你解决了所有文件里的冲突之后,对每个文件使用 git add
命令来将其标记为冲突已解决。 一旦暂存这些原本有冲突的文件,Git 就会将它们标记为冲突已解决。
- git branch -d XXX:删除分支
其他git问题记录:
1、git文件名过长,导致不能提交到缓存区或同步到本地
解决办法:
(1)直接使用git 命令行
a.在上传文件的文件夹下打开git bush here
b.操作命令: $ git config --system core.longpaths true
(将git的配置文件中的长文件名修改为true)
c.查看修改结果: git config core.longpaths
此方法一般能解决这个问题,有时也会出现 权限问题
(2)修改本地git配置文件
a.当出现 权限问题 不能修改本机git配置时,可以直接修改配置文件信息
; b.用管理员权限在本地打开错误提示目录下的文件
c.在文件中的 [core] 下手动添加 longpaths = true 的键值对