学习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
复制
如果没有任何提示信息,则说明恢复成功了。