
Git
sinat_36789271
这个作者很懒,什么都没留下…
展开
-
Git 导读
本地 Git 的三个分区分别是:working directory,stage/index area,commit history。working directory是「工作目录」,就是我们肉眼能够看到的文件,是直接编辑文件的地方。暂存区(STAGIN AREA):树形目录,数据(快照)暂时存放的地方。当我们在work directory中执行git add相关命令后,就会把work directory中的修改添加到「暂存区」。暂存区用于暂时存放提交,相当于对工作目录做一次快照,以便于工作.原创 2021-05-22 22:38:19 · 194 阅读 · 0 评论 -
二、用stage还原work dir文件
把stage中的修改还原到work dir中这个需求很常见,也很重要,比如我先将当前work dir中的修改添加到stage中,然后又对work dir中的文件进行了修改,但是发现工作区的变更还没有暂存区的好,如何把work dir中的全部或部分文件还原成stage中的样子呢?指令将一个文件还原:$ git checkout [file1]添加当前目录下的所有文件还原:$ git checkout .有一点需要指出的是,checkout命令只会把被「修改」的文件恢复成stage原创 2021-05-22 22:09:50 · 167 阅读 · 0 评论 -
Git HEAD指针
使用 git checkout 来移动HEAD指针,移动到的对象可以是分支也可以是Commit。HEAD指针可以指向Commit也可以指向branch。当指向branch时commit提交后会和branch一起向后移动,当不指向branch提交时时则会在一个detached状态。实例演示说明HEAD指针默认指向当前的分支,用星号表示Head所在位置,如master *移动HEAD指针,git checkout C1。 这个时候HEAD指针指向的是快照,这个时候指针的状态称之为头指针分离状原创 2021-05-22 22:00:32 · 5032 阅读 · 1 评论 -
Git 分支
Git 的分支,其实本质上仅仅是指向提交对象的可变指针,这个可变指针,指向路的终点。创建分支 git branch <name>如果此时head 指向某分支,则 创建一个指向 该分支指向的commit的 分支。head指向不变。如果此时head 指向commit,则创建一个指向该commit的分支。head指向不变,仍然是commit。查看分支 git branch //查看本地分支 git branch -r //查看远程分支 git branch -a //查原创 2021-05-22 21:59:10 · 111 阅读 · 0 评论 -
六、将history区的历史提交还原到work dir中
这个场景,举一个极端一点的例子:比如我从 GitHub 上clone了一个项目,然后乱改了一通代码,结果发现我写的代码根本跑不通,于是后悔了,干脆不改了,我想恢复成最初的模样,怎么办?依然是使用checkout命令,但是和之前的使用方式有一些不同:$gitcheckoutHEAD.Updated12pathsfromd480c4f这样,work dir 和stage 中所有的「修改」都会被撤销,恢复成HEAD 指向的那个history commit。注意,类似之前通过sta...原创 2021-05-22 21:52:25 · 206 阅读 · 1 评论 -
五、将work dir的修改提交到history区
git commit -a -m “massage”git commit -a -m “massage” 或者 git commit -am "message"。其他功能如-m参数,加的-a参数可以将所有已跟踪文件中的执行修改或删除操作的文件都提交到本地仓库,即使它们没有经过git add添加到暂存区。注意,新加的文件(即没有被git系统管理的文件)是不能被提交到本地仓库的。建议一般不要使用-a参数,正常的提交还是使用git add先将要改动的文件添加到暂存区,再用git commit 提交到原创 2021-05-22 21:51:59 · 151 阅读 · 0 评论 -
四、将history区的文件还原到stage区
这个需求很常见,比如说我用了一个git add .一股脑把所有修改加入stage,但是突然想起来文件a.txt中的代码我还没写完,不应该把它commit到history区,所以我得把它从stage中撤销,等后面我写完了再提交。指令$gitreset一个或者多个文件该命令的自然语言描述是:不改变work dir中的任何数据,将stage区域中的a.txt文件还原成HEAD指向的commit history中的样子。风险等级:低风险。理由:不会改变work dir中的数据,会改变st...原创 2021-05-22 21:49:23 · 211 阅读 · 0 评论 -
三、将stage区的文件添加到history区
很简单,就是 git commit 相关的命令,一般我们就是这样用的:$gitcommit-m'一些描述'再简单提一些常见场景, 比如说commit完之后,突然发现一些错别字需要修改,又不想为改几个错别字而新开一个commit到history区,那么就可以使用下面这个命令:$gitcommit--amend这样就是把错别字的修改和之前的那个commit中的修改合并,作为一个commit提交到history区。风险等级:无风险。理由:不会改变任或撤销任何...原创 2021-05-22 21:48:28 · 200 阅读 · 0 评论 -
一、Git add
Git add 命令将从未添加过的文件(untracked),有修改的文件(unstaged)放入暂存区,暂存区的文件可被Git跟踪管理。如下图所示,在本地工作目录中修改好文件后,通过git add将修改后的文件提交到暂存区。指令添加一个或多个文件到暂存区:git add [file1] [file2] ...添加指定目录到暂存区,包括子目录:git add [dir]添加当前目录下的所有文件到暂存区:git add .顺便一提,add有个别名叫做stage,也就是说你原创 2021-05-22 21:10:38 · 250 阅读 · 0 评论