Git 学习笔记
本文最后更新于:2020-08-18 18:39
最近在廖雪峰的官方网站上学Git管理代码库,在这里做笔记,备忘用
安装Git
1  |  | 
安装完成后,还需要最后一步设置,输入
1  |  | 
创建版本库
初始化一个Git仓库,使用git init命令
添加文件到Git仓库,分两步:
使用命令
git add <file>,注意,可反复多次使用,添加多个文件;
使用命令git commit -m,完成 使用命令
git commit -m <message>,完成
时光机穿梭
- 要随时掌握工作区的状态,使用
git status命令 - 如果
git status告诉你有文件被修改过,用git diff可以查看修改内容 
版本回退
用git log命令查看历史记录
如果嫌输出信息太多,看得眼花缭乱的,可以试试加上--pretty=oneline参数
用HEAD表示当前版本,上一个版本就是HEAD^,上上一个版本就是HEAD^^,当然往上100个版本写100个^比较容易数不过来,所以写成HEAD~100
使用git reset命令回退版本
- 回退到上一个版本:
git reset --hard HEAD^ - 退回到指定版本:
git reset --hard commit_id 
commit_id用git log可以查看
要重返未来,用git reflog查看命令历史,以便确定要回到未来的哪个版本
撤销修改
- 场景1:当你改乱了工作区某个文件的内容,想直接丢弃工作区的修改时,用命令
git checkout -- <file> - 场景2:当你不但改乱了工作区某个文件的内容,还添加到了暂存区时,想丢弃修改,分两步,第一步用命令
it reset HEAD <file>,就回到了场景1,第二步按场景1操作 - 场景3:已经提交了不合适的修改到版本库时,想要撤销本次提交,参考版本回退一节,不过前提是没有推送到远程库
 
删除文件
命令git rm用于删除一个文件,然后git commit -m <message>,完成
如果是删错,用git checkout -- <file>
远程仓库
添加远程库
1  |  | 
第一次推送
master分支时,需加上-u参数
以后用git push origin master推送最新修改
从远程库克隆
git clone <远程仓库地址> <克隆到本地时的文件夹名,可留空>
自定义Git
忽略特殊文件
在Git工作区的根目录下创建一个特殊的.gitignore文件,然后把要忽略的文件名填进去,Git就会自动忽略这些文件
如:
忽略Windows自动生成的垃圾文件:
1  |  | 
忽略Python编译产生的.pyc、.pyo、dist等文件或目录:
1  |  | 
最后一步就是把.gitignore也提交到Git
配置别名
用git st表示git status:
1  |  | 
在撤销修改一节中,我们知道,命令git reset HEAD <fil>可以把暂存区的修改撤销掉(unstage),重新放回工作区。既然是一个unstage操作,就可以配置一个unstage别名:
1  |  | 
当你敲入命令:
1  |  | 
实际上Git执行的是:
1  |  | 
配置文件
配置文件放在.git/config文件中:
1  |  | 
别名就在[alias]后面,要删除别名,直接把对应的行删掉即可
删除所有提交历史记录,成为一个干净的新仓库
1  |  | 
参考文献
git - how to delete all commit history in github? - Stack Overflow
Git教程 - 廖雪峰的官方网站