git 知道这些就够了_git# git 知道这些就够了

## git status 可以查看当前仓库的状态信息。

git 知道这些就够了

git 知道这些就够了_git

git status

可以查看当前仓库的状态信息。
git 知道这些就够了_远程仓库_03
如果在仓库创建两个新文件,index.html 和 index.js。
git 知道这些就够了_git_04
在执行一下 ​​​git status​​​。
git 知道这些就够了_文件名_05

git add <文件名>

输入​​git add <文件名>​​​ 可以将单个文件加入暂存区。
git 知道这些就够了_文件名_06
再次查看状态:发现 index.html 绿了
git 知道这些就够了_git_07
如果要把全部文件加入暂存区,可以使用 ​​​git add .​​​命令。
git 知道这些就够了_git_08
OK,他全家都绿了。

git commit -m

使用 ​​git commit -m <描述>​​​ 命令提交变更。
git 知道这些就够了_git_09
这样,就提交了 commit 。

git log

可以通过 ​​git log​​​ 命令查看日志。
git 知道这些就够了_远程仓库_10
通过日志,我们可以看到什么人在什么时间提交了什么日志。每一个commit会生成一个哈希值,这个值是唯一的。

接下来我们修改一下 index.js 文件,简单的加几行代码。
git 知道这些就够了_远程仓库_11
加完三行代码,然后在查看状态。
git 知道这些就够了_远程仓库_12
发现又出现红色的文件,红色的文件表示有新的变更,然后重复之前的步骤,提交一下代码。
git 知道这些就够了_git_13
注意,​​​git commit​​ 只提交那些被绿了的文件。

git reset <文件名>

当你 add 了一个文件,但是又后悔了,觉得本次提交不该包含这个狗东西的时候,在commit之前,我们可以使用 ​​git reset​​ 来讲绿色的重新变成红色的。

文件状态

文件是有状态的
git 知道这些就够了_文件名_14

变更

变更就是对比仓库文件和现有文件之间的差异,如果一致,则认为unmodified,也就是说,只要提交了,就是 unmodified。

自定义命令 alias

git 常用命令
git 知道这些就够了_远程仓库_15
设置自定义命令:找到git安装目录,打开 gitconfig文件
git 知道这些就够了_git_16
然后就可以设置自己的 alias。
git 知道这些就够了_文件名_17

回退 Reset

如果我们提交了多次,就像上面我们提交了两次,但是我觉得第一次提交的好,我想回到第一次提交的状态,可以先找到当时的 commit ID,然后通过 ​​git reset <commitID>​​​将文件恢复到当时提交时的状态(指文件内容)。
git 知道这些就够了_文件名_18
关于 --hard 参数加不加的区别后面会说,然后 ​​​git log​​​ 看一下提交日志。
git 知道这些就够了_git_19
发现第二次提交没有了,哈哈哈哈。

假如说,你有他妈的后悔了,想回到最新的 commit 怎么办,这是后可以使用 ​​git reflog​​​ 命令查看所有的操作记录,在当中找到你想回退的 commitID 再次使用 ​​git reset​​​ 命令即可回到最新的版本。
git 知道这些就够了_远程仓库_20
这时候发现这个 commitID 和之前不一样长是吧,其实是一样的,其实 commitID 只要前七位就可以锁定是那个 commit 了,所以输入全部和输入前七位是一样的。其实如果想回到最新的,直接使用​​​git pull​​ 也行,后面会说。

git reset 的模式

reset 是可以重置到某个 commit 状态的。那么 reset 之后的文件变更去哪里了,这里就受到了 reset 模式的影响。
git 知道这些就够了_git_21

分支 Branch

我们可以使用 ​​git checkout -b <name><template>​​​ 命令创建新的分支。后面跟两个参数,第一个参数是新分支的名字,第二个参数是指以哪个分支或者是 commit 为模板,如果第二个参数不填,则以当前所在分支为模板。这个模板的意思?
git 知道这些就够了_远程仓库_22
我们每次 commit 是记录在当前分支中的,假如我们以这个分支为模板,新切一个分支,新分支的记录会继承自模板分支。
git 知道这些就够了_文件名_23
但是请注意,切完分支后,分支的改动都和其他分支不在有关系。
git 知道这些就够了_文件名_24
新切一个分支叫 bc-a 。
git 知道这些就够了_远程仓库_25
查看日志,发现他继承了模板分支。
git 知道这些就够了_git_26
然后修改一下git 知道这些就够了_文件名_27
在 bc-a 分支提交一个 commit。查看日志在 bc-a 分支有新的commit 提交。
git 知道这些就够了_文件名_28
这个在 bc-a 分支提交的commit ,在 主分支会有吗?

使用 ​​git checkout master​​​ 可以切换回主分支。
git 知道这些就够了_远程仓库_29
好的,主分支没有记录。

接下来可以通过 ​​git branch​​​ 来查看所有分支。
git 知道这些就够了_git_30
高亮的条目代表我们现在所处的分支,这样的话我们想要去某一个 commit 就可以通过切换分支而不是去找 commitID,这样还是挺方便的。

合并 merge

如果我们需要合并其他分支的变更,我们使用 ​​git merge <branchName>​​​ 命令即可合并分支变更,注意,是分支变更,不是分支内容。
git 知道这些就够了_文件名_31

远程仓库 Remote

之前所有的骚操作都是在我们自己本地电脑里面执行的单击小游戏玩法。

切换到 bc-a 分支,然后提交 bc-a 分支到远程仓库是失败的,因为远程仓库没有 bc-a,所以我们使用下面提示的命令在远程仓库创建 bc-a。

git push -set-upstream origin bc-a

git 知道这些就够了_远程仓库_32

拉取远程仓库信息

git fetch

git 知道这些就够了_git_33
上面的命令只是知道远程仓库有一个 bc-a 分支,但是本地是没有的。

查看本地分支
git 知道这些就够了_远程仓库_34
先 ​​​git fetch​​​ 然后 ​​git checkout bc-a​​ 模板分分支来自远程仓库,就不需要设置上流分支了。

在前面,专门讲 branch 的命令格式 ​​git checkout -b <name><template>​​​ ,但是,如果 trmplate 不是本地的,是来自远程仓库的话,需要在 template 前面加一个 origin ,也就是 ​​git checkout -b <name> origin <template>​​。

git pull

​git pull​​​ 等于 ​​fetch​​​ + ​​merge​

变基 Rebase

搞错了,不是上面的变基,是下面的...

git 知道这些就够了_远程仓库_35
git 知道这些就够了_文件名_36
变基简单点就是重新排列 base,而 base 就是指 commit 。

在分支变基:

git rebase master

变基完成, add 到暂存区,使用

git rebase --continue

执行下一个 commit 的 rebase,直至完成。

【版权声明】本博文著作权归作者所有,任何形式的转载都请联系作者获取授权并注明出处!

【重要说明】本文为本人的学习记录,论点和观点仅代表个人而不代表当时技术的真理,目的是自我学习和有幸成为可以向他人分享的经验,因此有错误会虚心接受改正,但不代表此刻博文无误!

【Gitee地址】秦浩铖:​​https://gitee.com/wjw1014​