Git常用命令行操作 & Git分支的概念理解

目录

1. 安装Git for windows

2. Git的用户名和邮箱配置

3. 常用Git的命令行操作

(1)创建Git仓库

(2)获取远程Git仓库

(3)提交文件

(4)查看文件提交记录

(5)状态回退、数据回滚操作

4. Git工作区、暂存区和本地库的概念

5. Git的分支命令行操作

(0)Git分支的概念

(1)创建分支

(2)切换分支

(3)解决合并文件时的冲突

(4)合并分支

(5)删除分支


 

1. 安装Git for windows

此命令行工具下载地址:https://git-for-windows.github.io/

直接点击进入,然后download即可;

安装完后,在任意文件目录下, 右键打开看到Git Bash Here和Git GUI Here表示安装成功;

点击Git Bash Here打开Git的命令行窗口。

2. Git的用户名和邮箱配置

Git是分布式版本控制系统,所以需要填写用户名和邮箱作为一个标识

git config --global user.name "用户名"
git config --global user.email "邮箱"

在C:\Users\admin路径下的.gitconfig文件中可以看到保存的用户名和邮箱信息

--global表示当前用户(全局)

--system表示所有用户(本系统)

--local表示本地配置(当前目录),默认用的是local

3. 常用Git的命令行操作

(1)创建Git仓库

在项目文件夹内,执行命令

git init

当前目录下,出现.git隐藏文件夹,说明Git仓库创建成功

(2)获取远程Git仓库

克隆远程Git仓库,使用命令(其中url在github中直接copy)

git clone <url>

(3)提交文件

通常提交文件前,先检查下修改了什么内容,当前Git目录下各文件的状态 git status

git status

然后再提交文件到暂存区(也叫缓存区) git add

git add 文件名      #发送指定file到缓冲区
git add *.txt      #发送通配符.txt,当前目录下所有的txt文件到缓冲区
git add 目录        #发送目录路径下的所有文件到缓冲区

然后再将缓冲区文件提交到本地库 git commit

git commit -m "备注信息"

从缓存区中,恢复文件到工作区 git checkout -- 文件名(注意--前后都有空格)

(4)查看文件提交记录

查看历史记录 git log 文件名

$ git log aaa.txt
commit 9cf17f1132482eab823e2fe9c8353df79f585389 (HEAD -> master)
Author: kevin <[email protected]>
Date:   Wed Jan 2 19:18:14 2019 +0800

    aaa第二次提交

commit a0932d80e643e5fad86ada2c08e7f3114d54eb62
Author: kevin <[email protected]>
Date:   Wed Jan 2 19:17:21 2019 +0800

    aaa第一次提交

查看历史记录,只用一行表示 git log --pretty=oneline 文件名

$ git log --pretty=oneline aaa.txt
9cf17f1132482eab823e2fe9c8353df79f585389 (HEAD -> master) aaa第二次提交
a0932d80e643e5fad86ada2c08e7f3114d54eb62 aaa第一次提交

查看操作的版本记录HEAD git reflog 文件名

$ git reflog
9cf17f1 (HEAD -> master) HEAD@{0}: commit: aaa第二次提交
a0932d8 HEAD@{1}: commit (initial): aaa第一次提交

可以看到对于1-aaa.txt这个文件进行了两次操作,版本号分别是0和1

(5)状态回退、数据回滚操作

git reset --hard HEAD^:回退到上一次提交状态

$ git reset --hard HEAD^
HEAD is now at a0932d8 aaa第一次提交

此时,aaa.txt文件中的内容,回滚至第一次提交时候的状态

git reset --hard HEAD~n:回退n次操作

git reset --hard 版本号:穿越至第n个版本,版本号通过git reflog 文件名去查看

$ git reset --hard  HEAD@{1}
HEAD is now at 0f32c20 aaa第三次提交

此时,文件aaa.txt变更为第三次提交时的状态

ps:通过状态回滚机制,发现Git保存的是一系列文件的快照。

4. Git工作区、暂存区和本地库的概念

工作区(Working Directory):就是电脑本地硬盘目录

暂存区(stage):一般存放在"git目录"下的index文件(.git/index)中,所以我们把暂存区有时也叫作索引(index)

本地库(Repository):工作区有个隐藏目录.git,它就是Git的本地版本库

5. Git的分支命令行操作

(0)Git分支的概念

Git分支是轻量级的,速度很快,只记录索引信息;分支只是一个指针,指向逐渐推进的commit节点

所谓分支,就是创建一个指针,指向特定的commit节点,也就是文件的某个快照,不同的快照对应的文件内容是不一样的,也可以说是文件的版本是不一样的,不同的分支,就指向不同版本的文件

通过不同分支,完成不同模块的独立操作,最后再通过合并,将分支合并到master上

ps:附上一篇关于Git分支讲解很好的博客:对于Git分支的理解

日常工作中一般三个主要分支:master分支,develop开发分支,hotfix是bug修理分支

(1)创建分支

git branch :分支名

git branch -v :查看分支

$ git branch -v
* master 0f32c20 aaa第三次提交
  分支1  0f32c20 aaa第三次提交
  分支2  0f32c20 aaa第三次提交

*表示当前分支,后面是当前分支记录的commit节点的备注信息,也就是当前文件的版本

(2)切换分支

git checkout 分支名

$ git checkout 分支1
Switched to branch '分支1'

git checkout -b 分支名:创建同时切换分支

$ git checkout -b 分支3
Switched to a new branch '分支3'

(3)解决合并文件时的冲突

如果合并存在冲突,即同一文件同一位置的代码,当分支和master两种版本合并时,系统无法判断应该保留哪个版本,需要手动修改

合并文件后,系统出现CONFLICT关键字,后缀出现MERGING表示出现冲突

git diff 分支名1 分支名2:比较两个分支的文件,查看发生冲突的文件和冲突内容

修改完毕后,再次git add 文件名、git commit -m “备注信息”提交文件,后缀MERGING消失,说明冲突解决完成

(4)合并分支

先切换到主干 git checkout master

再将分支合并到master上,即将分支的文件版本,更新到master上 git merge 分支名

(5)删除分支

git branch -d 分支名

猜你喜欢

转载自blog.csdn.net/wx1528159409/article/details/85636253
今日推荐