git的使用 | 青训营笔记

111 阅读5分钟

学习git使用方法

什么是git

  • git是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。
  • git是Linus Torvalds为了帮助管理Linux内核开发而开发的一个开放源码的版本控制软件。
  • git与常用的版本控制工具CVS, Subversion等不同,它采用了分布式版本库的方式,不必服务器端软件支持。
  • git不仅仅是个版本控制系统,它也是个内容管理系统(CMS),工作管理系统等。

git的优点

  • git把内容按元数据方式存储,而SVN是按文件。
  • git分支和SVN的分支不同:分支在SVN中一点都不特别,其实它就是版本库中的另外一个目录。而git的分支是指向某个提交的可变指针,创建和切换分支非常快速和方便。
  • git没有一个全局的版本号,而SVN有:这使得多人协作更加方便。
  • git的内容完整性要优于SVN:git的内容存储使用的是SHA-1哈希算法。这能确保代码内容的完整性,确保在遇到磁盘故障和网络问题时降低对版本库的破坏。

如何安装git

  • 在Windows上使用Git,先从Git官网直接下载安装程序,选择指定系统下载,然后按默认选项安装即可。
  • 安装完成后,在开始菜单里面找到"Git --> Git Bash",会弹出一个类似的命令窗口的东西,就说明Git安装成功。
  • 安装完成后,还需要最后一步设置,在命令行输入如下:
git config --global user.name "your name"
git config --global user.email "your email"

复制

这样就可以设置你的用户名和邮箱作为一个标识。

如何创建版本库

  • 版本库又名仓库,英文名repository,你可以简单的理解一个目录,这个目录里面的所有文件都可以被Git管理起来,每个文件的修改,删除,Git都能跟踪,以便任何时刻都可以追踪历史,或者在将来某个时刻还可以将文件"还原"。
  • 创建一个版本库也非常简单,首先选择一个合适的地方,创建一个空目录:
mkdir testgit # 创建一个空目录
cd testgit # 进入该目录
pwd # 显示当前目录路径

复制

  • 然后通过命令git init把这个目录变成git可以管理的仓库:
git init # 初始化仓库

复制

这时候你当前testgit目录下会多了一个.git的目录,这个目录是Git来跟踪管理版本的。

如何添加文件到版本库

  • 首先在工作区创建一个文件,比如readme.txt,并写入一些内容:
echo "Hello Git!" > readme.txt # 创建并写入文件

复制

  • 然后使用命令git add把文件添加到暂存区:
git add readme.txt # 添加文件到暂存区

复制

如果没有任何提示,说明已经添加成功了。

  • 接着使用命令git commit把文件提交到仓库:
git commit -m "add readme.txt" # 提交文件到仓库,并附上说明信息

复制

如果显示类似如下信息,说明提交成功了:

[master (root-commit) 6a5819e] add readme.txt
 1 file changed, 1 insertion(+)
 create mode 100644 readme.txt

复制

如何查看仓库状态

  • 使用命令git status可以查看当前仓库的状态,比如有没有文件被修改或者未提交:
git status # 查看仓库状态

复制

如果显示类似如下信息,说明没有任何文件未提交:

On branch master
nothing to commit, working tree clean

复制

如果显示类似如下信息,说明有文件被修改但未提交:

On branch master
Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git restore <file>..." to discard changes in working directory)
        modified:   readme.txt

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

复制

如何查看文件修改内容

  • 使用命令git diff可以查看当前工作区与暂存区或者版本库之间的差异:
git diff # 查看工作区与暂存区之间的差异
git diff --cached # 查看暂存区与版本库之间的差异
git diff HEAD # 查看工作区与版本库之间的差异

复制

如果显示类似如下信息,说明readme.txt文件被修改了一行内容:

diff --git a/readme.txt b/readme.txt
index e475afc..ce01362 100644
--- a/readme.txt
+++ b/readme.txt
@@ -1 +1 @@
-Hello Git!
+Hello World!

复制

如何撤销修改

  • 如果你对工作区中的某个文件做了修改但还没有添加到暂存区,你可以使用命令git restore来撤销修改:
git restore readme.txt # 撤销对readme.txt文件在工作区中的修改

复制

如果显示类似如下信息,说明撤销成功了:

Unstaged changes after reset:
M       readme.txt

复制

  • 如果你已经把工作区中的某个文件添加到暂存区了,但还没有提交到版本库,你可以使用命令git reset来撤销添加操作,并使用命令git restore来撤销修改:
git reset HEAD readme.txt # 撤销对readme.txt文件在暂存区中的添加操作
Unstaged changes after reset:
M       readme.txt

git restore readme.txt # 撤销对readme.txt文件在工作区中的修改

复制

如何删除文件

  • 如果你想从版本库中删除某个文件,并且该文件已经被提交过了,你可以使用命令git rm来删除,并且需要再次提交到版本库:
rm test.txt # 删除工作区中的test.txt文件

# 或者直接使用以下命令删除工作区和暂存区中的test.txt文件:
# git rm test.txt 

# 提交删除操作到版本库:
git commit -m "remove test.txt"
[master d46f35e] remove test.txt
 1 file changed, 1 deletion(-)
 delete mode 100644 test.txt 

复制

如果显示类似如下信息,说明删除成功了。

  • 如果你误删了工作区中某个文件,并且该文件已经被提交过了,你可以使用命令git restore来恢复该文件:
rm test.txt # 删除工作区中的test.txt文件

# 恢复删除操作:
git restore test.txt 

复制

如果没有任何提示信息,则说明恢复成功了。