最浅显易懂的Git教程总结
本文内容凝练自廖雪峰的官方网站Git教程,建议去网站学习理解的深刻。www.liaoxuefeng.com/wiki/896043…
1.Linux系统安装git
sudo apt-get install git
//安装完成后,还需要最后一步设置,在命令行输入:
git config --global user.name "Your Name"
git config --global user.email "email@example.com"
//注意`git config`命令的`--global`参数,用了这个参数,表示你这台机器上所有的Git仓库都会使用这个配置,当然也可以对某个仓库指定不同的用户名和Email地址
2.创建版本库
//版本库又名仓库,英文名**repository
//在一个合适的地方创建版本库
$ mkdir learngit
$ cd learngit
$ pwd
/Users/michael/learngit
//通过`git init`命令把这个目录变成Git可以管理的仓库:
$ git init
Initialized empty Git repository in /Users/michael/learngit/.git/
我们创建的文件一定要放到我们设置的learngit目录下(子目录也行),因为这是一个Git仓库,放到其他地方Git再厉害也找不到这个文件。
把一个文件放到git仓库只需要两步:
//第一步,用命令`git add`告诉Git,把文件添加到仓库:
git add readme.txt
//第二步,用命令`git commit`告诉Git,把文件提交到仓库
git commit -m "wrote a readme file"
[master (root-commit) eaadf4e] wrote a readme file
1 file changed, 2 insertions(+)
create mode 100644 readme.txt
//解释一下`git commit`命令:`-m`后面输入的是本次提交的说明,可以输入任意内容,一定要有意义,方便日后阅读
git add和git commit一定要顺序依次使用,才会进git仓库
3.版本穿梭
时刻掌握仓库当前状态的命令
git status
查看文件上次是怎末修改的命令
git diff readme.txt
//`git diff`顾名思义就是查看difference
翻看历史记录,看到每次提交的日志
git log
使用reset命令回退上一个版本。首先,Git必须知道当前版本是哪个版本,在Git中,用HEAD表示当前版本,也就是最新的提交1094adb...(注意我的提交ID和你的肯定不一样),上一个版本就是HEAD^,上上一个版本就是HEAD^^,当然往上100个版本写100个^比较容易数不过来,所以写成HEAD~100。
git reset --hard HEAD^
//`--hard`参数有啥意义?这个后面再讲,现在先放心使用
查看文件内容,用cat
cat readme.txt
git reflog查看每一次命令,再用git reset --hard 1054a 回到过去版本,版本号不用写全,写前几个就可以了。
4.涉及到工作区和暂存区的版本回退
4.1关于工作区和暂存区的深入理解,建议去廖雪峰的网站学习
场景1:当你改乱了工作区某个文件的内容,想直接丢弃工作区的修改时,用命令git checkout -- file。
场景2:当你不但改乱了工作区某个文件的内容,还添加到了暂存区时,想丢弃修改,分两步,第一步用命令git reset HEAD <file>,就回到了场景1,第二步按场景1操作。
场景3:已经提交了不合适的修改到版本库时,想要撤销本次提交,参考版本回退一节,不过前提是没有推送到远程库。
4.2 删除文件
一般情况下,你通常直接在文件管理器中把没用的文件删了,或者用rm命令删了:rm test.txt。这个时候,Git知道你删除了文件,因此,工作区和版本库就不一致了,git status命令会立刻告诉你哪些文件被删除了:
现在你有两个选择,一是确实要从版本库中删除该文件,那就用命令
git rm删掉,并且git commit;
另一种情况是删错了,因为版本库里还有呢,所以可以很轻松地把误删的文件恢复到最新版本:
$ git checkout -- test.txt
注意:命令git rm用于删除一个文件。如果一个文件已经被提交到版本库,那么你永远不用担心误删,但是要小心,你只能恢复文件到最新版本,你会丢失最近一次提交后你修改的内容。
5.分支
深刻理解,同样建议去网站学习,这里只总结出了关键命令。
Git鼓励大量使用分支,安全高效便捷。
查看分支:git branch
创建分支:
git branch <name>
切换分支:git checkout <name>或者git switch <name>
创建+切换分支:git checkout -b <name>或者git switch -c <name>
合并某分支到当前分支:git merge <name>
删除分支:git branch -d <name>
git中分支name常设为dev