Git 版本管理

本文详细介绍了Git的安装、创建/修改版本库、记录修改以及如何回到从前的各个步骤,包括在Linux、Mac和Windows系统的安装,版本库的创建、文件管理、提交改变等。还探讨了分支管理,包括分支创建、合并、冲突解决和rebase操作。此外,文章还介绍了使用stash暂存和恢复临时修改的方法,是学习Git版本管理的实用教程。
摘要由CSDN通过智能技术生成

Git 版本管理

本文主要参考:https://morvanzhou.github.io/tutorials/others/git/
希望对大家有帮助。
思维导图先走一波:
在这里插入图片描述

1、Git安装
Linux系统

使用 Linux 的朋友们, 大家肯定都很熟悉怎么在 Linux 上装东西, 所以只要找到你的 Terminal, 并输入以下指令就可以啦:

# 如果你的 Linux 是 Ubuntu:
$ sudo apt-get install git-all

# 如果你的 Linux 是 Fedora:
$ sudo yum install git-all
Mac系统

Git 已经为 Mac 用户做好了一个安装包, 我们可以在这里下载并安装 https://git-scm.com/download/mac

Windows 系统

Git 也为 Windows 系统提供了简易的 .exe 安装包, 直接从这里下载并安装就可以了: https://git-scm.com/download/win

2、创建/修改版本库
2.1创建第一个版本库
创建版本库

我们先要确定要把哪个文件夹里的文件进行管理. 比如说我桌面上的一个叫 gitTUT 的文件夹. 然后在 Terminal (Windows 的 git bash) 中把当前目录调到这个文件夹 gitTUT, 我的做法是这样:

$ cd ~/Desktop/gitTUT

为了更好地使用 git, 我们同时也记录每一个施加修改的人. 这样人和修改能够对应上. 所以我们在 git 中添加用户名 user.name 和 用户 email user.email:

$ git config --global user.name "Morvan Zhou"
$ git config --global user.email "mz@email.com"

然后我们就能在这个文件夹中建立 git 的管理文件了:

$ git init
# Initialized empty Git repository in /Users/MorvanZhou/Desktop/gitTUT/.git/

因为这个文件夹中还没有任何的文件, 它返回出来一句话告诉我们已经建立了一个空的 git 管理库.

添加文件管理

通常我们执行 $ ls 就能看到文件夹中的所有文件, 不过 git 创建的管理库文件 .git 是被隐藏起来的. 所以我们要执行这一句才能看到被隐藏的文件:

$ ls -a
# .	..	.git

建立一个新的 1.py 文件:

$ touch 1.py

现在我们能用 status 来查看版本库的状态:

$ git status

# 输出
On branch master    # 在 master 分支

Initial commit

Untracked files:    
  (use "git add <file>..." to include in what will be committed)

	1.py        # 1.py 文件没有被加入版本库 (unstaged)

nothing added to commit but untracked files present (use "git add" to track)

现在 1.py 并没有被放入版本库中 (unstaged), 所以我们要使用 add 把它添加进版本库 (staged):

$ git add 1.py

# 再次查看状态 status
$ git status

# 输出
On branch master

Initial commit

Changes to be committed:
  (use "git rm --cached <file>..." to unstage)

	new file:   1.py    # 版本库已识别 1.py (staged)

如果想一次性添加文件夹中所有未被添加的文件, 可以使用这个:

$ git add .
提交改变

我们已经添加好了 1.py 文件, 最后一步就是提交这次的改变, 并在 -m 自定义这次改变的信息:

$ git commit -m "create 1.py"

# 输出
[master (root-commit) 6bd231e] create 1.py
 1 file changed, 0 insertions(+), 0 deletions(-)
 create mode 100644 1.py
流程图

整个上述过程可以被这张 git 官网上的流程图直观地表现:

[外链图片转存失败(img-g43Llull-1563455601312)(C:\Users\Antime\AppData\Roaming\Typora\typora-user-images\1563450135559.png)]

2.2记录修改(log&diff)
修改记录log

之前我们以Morvan Zhou 的名义对版本库进行了一次修改, 添加了一个 1.py 的文件. 接下来我们就来查看版本库的些施工的过程. 可以看到在 Author 那已经有我的名字和 email 信息了.

$ git log

# 输出
commit 13be9a7bf70c040544c6242a494206f240aac03c
Author: Morvan Zhou <mz@email.com>
Date:   Tue Nov 29 00:06:47 2016 +1100

    create 1.py # 这是我们上节课记录的修改信息

如果我们对1.py文件进行一次修改, 添加这行代码:

a = 1

然后我们就能在 status 中看到修改还没被提交的信息了.

$ git status

# 输出
On branch master
Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git checkout -- <file>..." to discard changes in working directory)

	modified:   1.py    # 这里显示有一个修改还没被提交

no changes added to commit (use "git add" and/or "git commit -a")

所以我们先把这次修改添加 (add) 到可被提交 (commit) 的状态, 然后再提交 (commit) 这次的修改:

$ git add 1.py
$ git commit -m "change 1"

# 输出
[master fb51216] change 1
 1 file changed, 1 insertion(+) # 提示文件有一处添加

再次查看 log, 现在我们就能看到 create 1.pychange 1 这两条修改信息了. 而且做出这两条 commit 的 ID, 修改的 Author, 修改 Date 也被显示在上面.

$ git log

# 输出
commit fb51216b081e00db3996e14edf8ff080fab1980a
Author: Morvan Zhou <mz@email.com>
Date:   Tue Nov 29 00:24:50 2016 +1100

    change 1

commit 13be9a7bf70c040544c6242a494206f240aac03c
Author: Morvan Zhou <mz@email.com>
Date:   Tue Nov 29 00:06:47 2016 +1100

    create 1.py

如果删除一部分代码, 也会被记录上, 比如把 a = 1 改成 a = 2, 再添加一个 b = 1.

a = 2
b = 1
查看unstaged
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值