Git

作者: TOKdawn | 来源:发表于2018-12-11 11:25 被阅读0次

Git做为一款优秀的绘线工具,是每一个当代程序猿都应该好好学习的(逃

 基础知识

* Git采用快照流机制。可以视git数据为一个小型的文件系统的若干快照

* Git中几乎所有操作都是本地执行,绝大多数指令可以离线操作

* Git有三种状态,已提交(committed)数据已经安全的保存到本地数据库。已修改(modified)已经修改文件但是还没存入数据库。已暂存(staged)对一个已修改文件的当前版本做标记,使之包含在下次提交的快照中

git status 检测文件状态

* Untracked files :新的未追踪文件(之前的快照库中不存在)可以通过git add 来进行文件追踪

* Changes to be committed : 暂存状态,如果进行提交这些文件此时此刻的版本就讲被留存到历史记录中

* Changes not staged for commit : 追踪的文件已经被改变,但是还没放入缓存区。如果要暂存这次更新可以运行git add 在这种情况下git add功能为把以追踪的文件放入缓存区,此外add命令还有把有冲突的文件标记为已解决状态等功能

* 可以添加参数 - -short来获取紧凑格式输出,紧凑格式时的标记含义如下

? ?新添加还未进行追踪

A  新添加到缓存区的文件

M 文件被修改了并放入了暂存区

  M  文件被修改了但是还未被放入暂存区

MM  文件被修改了一部分放入了缓存区,一部分没放入

 .gitignore (用于进行文件忽略)

* 所有空行或者以 # 开头的行都会被Git忽略

* 可以使用标准的glob模式进行匹配。

> glob模式

> 星号(*)匹配零个或多个任意字符;[abc]匹配任何一个列在方括号中的字符(这个例子要么匹配一个 a,要么匹配一个 b,要么匹配一个 c);问号(?)只匹配一个任意字符;如果在方括号中使用短划线分隔两个字符,表示所有在这两个字符范围内的都可以匹配(比如 [0-9] 表示匹配所有 0 到 9 的数字)。

* 匹配模式可以以  /  开头防止递归 。 以  \  结尾指定目录

*  [主流语言的gitignore](https://github.com/github/gitignore)

git commit 提交更新

* 添加参数 -m ‘一些描述’ 来进行提交描述

* 提交记录的是放在暂存区域的快照,没有放入暂存区的更改不会被提交

* 添加参数  -a 跳过使用暂存区,Git会自动把所有已经跟踪过的文件暂存起来一并提交,可以跳过git add

* git commit - -amend 可以在未push前 取消上一次commit

 git rm 移除文件

* 从版本管理中移除一个已经添加的文件,如果文件在删除之前已经修改了并且还放入的暂存区则需要添加 -f 命令进行强制删除

* 如果你只是想把文件在git仓库中删除(停止追踪)但是在本地磁盘中保留,也需要添加 - - cached 选项

git reset

* 取消一个已经暂存的文件

 git checkout - - __filename

* 取消对一个文件的修改

 git fetch [remote - name]

* 访问远端仓库,拉取所有还没在本地的数据,执行之后,将拥有远端仓库的所有分支引用。

git brach

* git brach -d 可以删除一个分支

git merge

* 当子分支在分离提交后,主分支未进行改动,可以通过切换回主分支 git merge  [sonbarch] 的方式进行合并,即在合并两个分支时如果顺着一个分支走下去能到达另一个分支,那么Git在合并两者时,只会简单的进行前推

* 当子分支在分离提交后,主分支也改动了,这时候再进行git merge操作则会把两个分支的末端快照进行合并,解决冲突后生成新的快照节点作为两个分支的共同后续

git rebase

* rebase命令可以将提交到某一分支上的所有修改转移到另一分支上,类似“重新播放” ,操作为在要被重新播放的分支上执行 git rebase master

* - - onto master server client 取出client分支上找出处于client分支和server分支的共同先祖之后的修改,把他们在master分支上进行重演

相关文章

网友评论

      本文标题:Git

      本文链接:https://www.haomeiwen.com/subject/aaeymxtx.html