使用Git进行版本控制

程序完成既定功能后,发布一个版本。

添加或修改部分功能后,生成一个新版本。

对这些版本进行管理,需要使用Git。

管理包括:

1、了解一共产生了多少个版本

2、每个版本之间发生的具体内容是什么

3、将主版本恢复到之前的状态

4、在主版本之上,建立分支版本

------------------------------------------

1、Git安装及配置

从官网下载适合本机操作系统的Git并安装。

在Windows系统中完成安装后,运行Git CMD。

配置用户

$ git config --global user.name "_username_"
$ git config --global user.email "_username@example.com_"

2、创建项目并使用Git管理

1)创建项目文件夹,并在其中添加项目文件。

2)创建一个名为.gitignore的特殊文件,忽略项目中__pycache__文件夹内的修改。因为这些修改时python自动生成的,不需要管理版本。在文件.gitignore中写入如下内容:

__pycache__/

3)初始化Git仓库。

在Git CMD中跳转到项目文件夹。执行初始化命令:git init。

运行结果如下,表明在项目文件夹git_practice下创建文件夹.git。这个.git文件夹就是Git仓库。

git_practice$ git init
Initialized empty Git repository in git_practice/.git/

4)把文件加入仓库。

命令git add .将项目中未被跟踪的所有文件都加入仓库中,并使用命令git status查看仓库状态。显示位于master分支上,没有新的提交,添加了两个被跟踪文件。

git_practice$ git add .
git_practice$ git status
On branch master

No commits yet

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

3、向仓库中提交修改。

提交的命令是git commit。-m表示要添加记录,此处记录的内容是:Started project。

提交后使用命令git status查看状态,显示位于master分支,working tree clean,这是每次提交项目的可行状态时都希望看到的消息。

git_practice$ git commit -m "Started project."
[master (root-commit) ee76419] Started project.
 2 files changed,4 insertions(+)
 create mode 100644 .gitignore
 create mode 100644 hello_git.py
git_practice$ git status
On branch master
nothing to commit,working tree clean
git_practice$

提交后,可以使用git log命令查看提交日志。每次提交时,Git都会生成唯一的引用ID,长40字符。

git_practice$ git log
commit a9d74d87f1aa3b8f5b2688cb586eac1a908cfc7f (HEAD ->master)
Author:Eric Matthes <eric@example.com>
Date:  Mon Jan 21 21:24:28 2019 -0900

    Started project.
git_practice$

对hello_git.py文件进行修改,再运行git status命令时,发现有没有提交的修改。

git_practice$ 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: hello_git.py

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

执行命令git commit -am "Extended greeting."再次提交。-a让Git将仓库中所有修改了的文件都加入当前提交中。

git_practice$ git commit -am "Extended greeting."
[master 51f0fe5] Extended greeting.
 1 file changed,1 insertion(+),1 deletion(-)
git_practice$ git status
On branch master
nothing to commit,working tree clean
git_practice$ git log --pretty=oneline
51f0fe5884e045b91c12c5449fabf4ad0eef8e5d (HEAD ->master) Extended greeting.
ee76419954379819f3f2cacafd15103ea900ecb2 Started project.
git_practice$

如果两次提交之间,对现有文件的修改使用git commit -a提交,添加新文件需要git add .

4、检出上次提交的版本,使用命令git checkout .撤销提交后的修改

git_practice$ git checkout .
git_practice$ git status
On branch master
nothing to commit,working tree clean
git_practice$

5、根据git log检出任意一次提交的版本

git_practice$ git log --pretty=oneline
51f0fe5884e045b91c12c5449fabf4ad0eef8e5d (HEAD ->master) Extended greeting.
ee76419954379819f3f2cacafd15103ea900ecb2 Started project.
git_practice$ git checkout ee7641
Note:checking out 'ee7641'.

You are in 'detached HEAD'state.You can look around,make experimental
changes and commit them,and you can discard any commits you make in this
state without impacting any branches by performing another checkout.

If you want to create a new branch to retain commits you create,you may
do so (now or later) by using -b with the checkout command again.Example:

  git checkout -b <new-branch-name>

HEAD is now at ee7641...Started project.
git_practice$

在执行命令git log之后,看到历次提交的版本ID

使用命令git checkout ID前六位,就可以检出到该ID对应的版本。

注意,这时已经离开master分支,进入了detached HEAD状态。

如果想在这个版本的基础上建立一个分支,应该使用命令git checkout -b <new-branch-name>

如果需要回到master分支,执行命令git checkout master

如果要回到以前的版本,并且仍在master分支,执行命令git reset --hard ID前六位

6、删除仓库

如果提交记录混乱,可以在检出需要的版本之后,删除git仓库,并重建仓库。

删除仓库命令:rm -rf .git


git_practice$ rm -rf .git
git_practice$ git status
fatal:Not a git repository (or any of the parent directories):.git
git_practice$ git init
Initialized empty Git repository in git_practice/.git/

相关推荐

  1. 使用Git进行版本控制

    2024-04-20 14:46:03       13 阅读
  2. 如何使用版本控制工具(如Git进行代码管理?

    2024-04-20 14:46:03       37 阅读
  3. Linux下如何使用Git进行版本控制

    2024-04-20 14:46:03       11 阅读
  4. GitGit版本控制工具使用详解

    2024-04-20 14:46:03       35 阅读
  5. 怎么使用Git进行版本恢复

    2024-04-20 14:46:03       28 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-04-20 14:46:03       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-04-20 14:46:03       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-04-20 14:46:03       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-04-20 14:46:03       18 阅读

热门阅读

  1. Spring的循环依赖问题如何解决

    2024-04-20 14:46:03       14 阅读
  2. 美国家安全局等发布安全部署人工智能系统指南

    2024-04-20 14:46:03       10 阅读
  3. MySQL 高级技巧

    2024-04-20 14:46:03       14 阅读
  4. ubuntu系统下opencv的编译安装

    2024-04-20 14:46:03       16 阅读
  5. Controller配置总结(SpringMVC学习笔记二)

    2024-04-20 14:46:03       13 阅读
  6. AGI来了?特拉斯用大模型帮助自动驾驶

    2024-04-20 14:46:03       11 阅读
  7. cpt111 Principles of Programming

    2024-04-20 14:46:03       12 阅读
  8. Spring自定义注解+AOP实现接口防重复提交

    2024-04-20 14:46:03       13 阅读
  9. CentOS 7软件安装全攻略:YUM命令详解与实战

    2024-04-20 14:46:03       14 阅读