详细的Git使用教程


前言

本文介绍了Git学习的基础内容

一、Git是什么?

Git是一款免费、开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目版本管理。
Git 是 Linus Torvalds为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。

二、Git工作区、暂存区、Git 仓库

  • git工作区

工作区是对项目的某个版本独立提取出来的内容。就是你在电脑里能看到的目录。

  • 暂存区(stage)

暂存区是一个文件,保存了下次将要提交的文件列表信息,一般在 Git 仓库目录中。 按照 Git的术语叫做“索引”,不过一般说法还是叫“暂存区”。

  • gti仓库

Git 仓库目录是 Git 用来保存项目的元数据和对象数据库的地方。 这是 Git 中最重要的部分,从其它计算机克隆仓库时,复制的就是这里的数据。

三、Git的使用

1.安装

下载地址:git下载
在这
双击开始安装,一直点击next完成安装,鼠标右击桌面出现如下就安装完成了
在这里插入图片描述

2.设置用户信息

安装完 Git 之后,要做的第一件事就是设置你的用户名和邮件地址。 这一点很重要,因为每一个 Git 提交都会使用这些信息,它们会写入到你的每一次提交中,不可更改:

$ git config --global user.name "yourname"
$ git config --global user.email "[email protected]"

配置完成后可以使用以下命令查看

$ git config --list

3.创建版本库

$ mkdir mygit
$ cd mygit    //切换到新建的文件夹下
#初始化仓库
$ git init

之后在该目录下会出现一个.git文件夹,这个是Git来跟踪管理版本库的。

4.git基本操作

1. 创建一个文件

$ touch test.txt

2. 将文件添加到缓存区

$ git add test.txt

3. 将文件提交到仓库

//引号里面本次提交的说明
$ git commit -m "first commit"

4. 查看当前状态

//查看当前版本状态
$ git status

5. 查看历史记录

//git log显示你所的提交日志
$ git log

6. 回退历史版本

$ git reset

HEAD 表示当前版本,而 HEAD~ 表示 HEAD 的上一个版本,HEAD~~则是上上个版本,如果表示上10个版本,则可以用HEAD~10来表示

$ git reset --hard HEAD~

–hard : 回退版本库、暂存区、工作区。(这里是回到初始状态,所以修改过的也就没了)

–mixed: 回退版本库、暂存区。(mixed为git reset的默认参数)

–soft: 回退版本库。

7. 查看历史命令(版本号)

$ git reflog
d9d27d4 (HEAD -> master) HEAD@{0}: reset: moving to HEAD
d9d27d4 (HEAD -> master) HEAD@{1}: commit (initial): first commit

8. 版本对比
在已经存在的文件中添加内容

$ git diff
warning: LF will be replaced by CRLF in a.txt.
The file will have its original line endings in your working directory
diff --git a/a.txt b/a.txt    //表示对比的是存放在暂存区域和工作目录的a.txt
index e69de29..190a180 100644   //表示对应文件的版本号
--- a/a.txt   //表示该文件是旧文件
+++ b/a.txt   //表示该文件是新文件
@@ -0,0 +1 @@
+123   //表示新添加的内容

9. 撤销修改

$ git checkout -- README.md

就是把没暂存的干掉,或者说,丢弃工作区,回到到暂存状态。

10.删除文件

$ git rm a.txt
rm 'a.txt'

11.重命名文件

git mv 旧文件名 新文件名

$ git mv b.txt c.txt

5.git分支管理

1.分支的创建与切换

git branch 分支名

//创建分支
$ git branch feature1
//查看分支
$ git log
commit 59707b02146659f41e9012bf6623e60dfcae05e4 (HEAD -> master, feature1)
//会看到版本号后面多了个(HEAD -> master, feature1)

//切换分支
$ git checkout feature1
Switched to branch 'feature1'

2. 合并分支

git merge 分支名

//切换分支
19737@LAPTOP-3TQGGV4N MINGW64 /d/Users/19737/Desktop/mymenu/git (master)
$ git checkout feature1
Switched to branch 'feature1'
//查看所有文件
$ ls
123.txt  c.txt  test.txt
//随意修改任意一个文件

//切回主分支
$ git checkout master
Switched to branch 'master'
//合并分支
$ git merge feature1
Updating 59707b0..f2ec55e
Fast-forward
 b.txt => 123.txt | 0
 c.txt            | 1 +
 2 files changed, 1 insertion(+)
 rename b.txt => 123.txt (100%)
 create mode 100644 c.txt


3. 删除分支

git branch -d 分支名

$ git branch -d feature1
Deleted branch feature1 (was f2ec55e).


//如果试图删除未合并的分支,使用下面的命令强制删除
$ git branch -D 分支名 

4. 变基

rebase将本地多次的commit合并成一个commit。

// 合并前两次的commit
$ git rebase -i head~~

5. 消除冲突

//新建一个分支
$ git branch feature2
$ git checkout feature2
Switched to branch 'feature2'

//修改test.txt文件
$ vi test.txt
$ git add .
$ git commit -m "feature2"

//切换到master分支
$ git checkout master
Switched to branch 'master'
//同样对test.txt进行修改
$ vi test.txt
$ git add .
$ git commit -m "master"

//合并分支feature2会看到

hello world!
Hello Git!
<<<<<<< HEAD
123
=======
123456789
>>>>>>> feature2
//Git用<<<<<<<  =======  >>>>>>>标记出不同分支的内容
//我们修改之后在提交就可以了
$ git merge feature2
Auto-merging test.txt
Merge made by the 'ort' strategy.
 test.txt | 1 +
 1 file changed, 1 insertion(+)

猜你喜欢

转载自blog.csdn.net/weixin_52986315/article/details/122578631