git常用指令及其作用

最近在学习git,我的远程仓库用的码云([email protected]),码云对远程仓库的使用讲解的非常的好。

在这篇文章中我尽量使自己的语言精确,因为我在查阅资料的时候经常会被一些错误的文章误导,如果有什么错误期望指正。

《GitHub入门与实践》这本书是我最近在看的,对概念的描述准确,适合作为入门的书。

记录一下最近学习过程中常用的git指令:

1.git init 

在哪一目录下,就会在该目录下生成.git目录。

注意:git init命令会把当前目录当作库。
例如在D:目录下,D盘就会被当成git的库,并生成.git文件夹

.git文件夹的上一层文件夹就是库

2.git status

查看本地库的状态

3. git add .

将所有发生改变的文件添加到暂存区

这里的"."可以被替换成具体文件名,以表示只添加该文件

4.git commit -m 'git_initCommit'

将暂存区的文件实际保存到仓库的历史纪录,通过这些历史记录,我们就可以在工作树中复原文件。

-m后的是提交信息,是对这个提交的概述;如果不加-m  '',会启用vim编辑录入提交信息。

提交信息非常关键,当你查看你的工作树时,需要通过提交信息来判断这次commit具体做了哪些改变。

5.git log

查看提交日志

例:
git log
commit bfd3d80ef042bcd2917a42c23373081b618cf8d8//目标时间点的hash值
Author: leisir <[email protected]>
Date:   Sun Jun 24 17:51:54 2018 +0800
    git_initCommit//这里会出现 提交信息

6.git branch
将分支名列表显示,并确定当前所在分支
左侧标有*的表示这是我们当前所在的分支

7.git diff

查看工作树与暂存区的差别
没有执行add .即没有添加暂存区的话,暂存区为空,显示的是工作树与最新提交状态之间的差别
git diff HEAD
查看工作树与最新提交的区别

8.git checkout -b feature-A//创建切换分支

等同于:

git branch feature-A//创建分支,这里的feature-A是我的分支名

  git checkout feature-A//将当前分支切换到该分支

git checkout -//切换回上一个分支

培育分支:不断对一个分支进行提交的操作
创建分支的作用:可以在互不影响的情况下进行多个功能的开发

9.git merge --no-ff feature-A//合并分支,这里的feature-A是我的分支名

--no-ff指的是强行关闭fast-forward方式,保留分支的commit历史。

具体看:--no-ff

这个指令会进入vim编辑器,需要输入此次合并的信息,同样会出现在历史记录中。
vim操作:使用ZZ保存退出,ZQ不保存退出
10.回溯历史版本

git reset --hard 目标时间点的hash值//hash值查找看5.git log部分

git log可以看到提交日志,需要根据提交信息来选择应该回溯到哪个时间点,所以提交信息至关重要。

注意:

回溯之后本地库中的文件也会发生改变
每次切换分支时,本地库中的文件都会发生改变


11.git commit -am ""

先暂时理解为add操作与commit操作的合并,但他远不止这样,有一些细节需要被注意,会在之后文件状态的文章中提到。

在windows环境下这个指令的提交信息要使用""包含。

12. git rebase -i HEAD~2

压缩历史,就是说将多个历史纪录压缩为一条历史纪录。

为什么要这样做呢?是因为有的时候会手误写了一些错误的信息,而我们并不想让这样的信息出现在我们的历史中。

这里历史的压缩

压缩历史发生冲突后,会让你解决问题。

解决冲突:修改、add、commit。为解决冲突这一操作添加的信息会变成最终的信息。

以上是对本地库的操作

接下来是对远程仓库的操作

1.git clone +项目的url

该命令会把远程的库克隆到本地库目录下,与.git目录同级

猜你喜欢

转载自blog.csdn.net/lei133691/article/details/80861609
今日推荐