1、设置用户名和邮箱地址
$ git config --global user.name "Your Name"
$ git config --global user.email "email@example.com"
运行上面的两行命令后这台电脑上的所有 Git 仓库都会使用这个配置,当然也可以对某个仓库指定不同的用户名和Email地址。此外,如果你用 github 托管你的项目,最好把邮箱设置成与 github 的邮箱一样。
2、创建一个版本库
创建一个空目录
$ mkdir dirName
将空目录设置为版本库
$ cd dirName
$ git init
这一步完成后在刚刚创建的目录下会有一个新的且默认是隐藏的 .git 文件夹,这个文件夹是 Git 来跟踪管理版本库用的。
3、把文件提交至版本库
Git 可以管理任何形式的文件,但是 Git 只能跟踪文本文件的改动,例如代码、txt文件。而对于二进制文件,Git 只能管理不能跟踪到具体的改动,例如图片、视频。
1)将工作区的 readme.txt 添加到暂存区(stage)
进入仓库的目录,运行
$ git add <file>
在 Windows 下可能会提示:
如果出现上图所示的警告,则参考解决方案。
除此之外,git add 文件夹/
命令可添加整个文件夹及内容,git add *.文件类型
命令可添加当前目录中所有此文件类型的文件。
2)把暂存区的所有内容提交到当前分支
$ git commit -m "commit_message"
-m后面的 “commit_message” 是对本次提交的说明信息。
此时会提示改动了几个文件,以及具体做了哪些改动。
注意,git commit 命令一次可以提交多个文件,也就是说可以先执行多个 git add 命令后,再执行一次 git commit 命令便可将多个文件一次性提交。
4、修改文件
在工作区里修改某个文件的内容后,执行
$ git status
此时 Git 会提示我们 Changes not staged for commit 和 no changes added to commit。
git status 这个命令可查看查看当前路径下的的状态,常见的几个状态包括:
Changes not staged for commit: 工作区里面存在修改过但还没有添加到暂存区的文件;
no changes added to commit:暂存区里面没有需要提交至版本库的文件;
Changes to be committed: 暂存区里面存在需要提交至版本库的文件;
nothing to commit, working tree clean: 没有需要提交的文件,工作区是干净的。
此外,要想具体地查看工作区中的文件与暂存区文件的差异,则需要执行
$ git diff <file>
接着执行 git add 命令把工作区中被修改过的文件添加至暂存区,再一次执行 git status 命令,此时会 Git 会提示 Changes to be committed。
最后执行 git commit -m "commit_message"把暂存区的文件提交至版本库,执行 git status,此时Git 会提示 nothing to commit, working tree clean。
5、版本回退
1)查看提交日志
$ git log
执行以上的命令,Git会显示从最近到最远的提交日志。在日志中,类似于 5a8663c091aa2f9d4c76756f627737c8ce472f49 的一长串十六进制数字是每次提交的版本号,同时我们可以看到提交的作者,时间,以及对每一次提交的说明信息。
如果想简化显示的信息,可以执行 git log --pretty=oneline
,Git则只会显示出版本号和每一次提交的说明。
在显示的信息中,可以发现某一个版本号后面跟了一个 (HEAD -> master) ,表示这是当前的版本。上一个版本就是 HEAD^
,上上个版本就是HEAD^^
,当然往前100个版本写 100个 ^ 会数不过来,所以写成 HEAD~100
。
2)回退上一个版本
$ git reset --hard HEAD^
除此上面的命令外,利用 git reset --hard commitId
也可以回到某个指定的版本,其中 commitId 是这一次提交对应的版本号。
Git 的版本回退速度非常快,因为 Git 在内部有个指向当前版本的 HEAD 指针,当你回退版本的时候,Git 仅需要把 HEAD 从当前版本指向需要回到的版本即可。
6、撤销修改
若改乱了工作区某个文件的内容,但没有添加到暂存区时,用命令 git checkout -- <file>
可撤销修改。
若改乱了工作区某个文件的内容,并将其添加到了暂存区时,想丢弃修改,分两步,先用命令git reset HEAD <file>
撤销暂存区的修改,再执行 git checkout -- <file>
工作区的修改。
7、删除文件
仅删除工作区的文件: rm <file>
仅删除暂存区的文件: git rm --cached <file>
将工作区和暂存区的文件一起删除:git rm <file>
删除版本库里的文件: 先删除暂存区的文件后,在用 git commit 提交至版本库。
若误删了工作区的文件,但是暂存区的文件还在,执行git checkout -- <file>
,便可利用暂存区的文件将工作区误删的文件恢复。
若工作区和暂存区的文件一起删除了,则只能通过版本回退的方法恢复文件了。
参考链接:
[1] https://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000
[2] https://www.cnblogs.com/yaoxiaowen/p/8227873.html