Git基本使用
参考:廖雪峰Git教程
基本使用
- 安装git
sudo apt-get install git
- 入门使用
git clone https://github.com/scut-githuber/os-util.git # clone repository到本地
cd gitDir
git init # 初始化空的Git仓库repository
git add filename # 将文件添加到repository
git add -A # 添加所有文件到repository
git commit -m "wrote a readme file" # 提交并写提交说明
git status # 查看已修改文件
git diff filename # 查看filename被修改的内容
git log [--pretty=oneline]# 查看提交日志
git reset --hard HEAD^ # 滚回上一版本
git reset --hard 3628164 # 指定ID回滚或者重做,`3628164`是commit id,git自动补全
git reflog # 查看命令历史,可以查看各个版本的commit id
git checkout -- name # 让这个文件回到最近一次git commit或git add时的状态。
git reset HEAD filename # 将filename从暂存区退回工作区
工作区和暂存区
- 工作区:工作目录,如
gitDir
- 版本库:工作区中的隐藏目录
.git
第一步是用
git add
把文件添加进去,实际上就是把文件修改添加到暂存区;第二步是用
git commit
提交更改,实际上就是把暂存区的所有内容提交到当前分支。
撤销修改
场景1:当你改乱了工作区某个文件的内容,想直接丢弃工作区的修改时,用命令
git checkout -- file
。场景2:当你不但改乱了工作区某个文件的内容,还添加到了暂存区时,想丢弃修改,分两步,第一步用命令
git reset HEAD file
,就回到了场景1,第二步按场景1操作。场景3:已经提交了不合适的修改到版本库时,想要撤销本次提交,在没有推送到远程库的前提下,
git reset --hard HEAD^
滚回上一版本。
误删与恢复
git checkout -- test.txt
git checkout
其实是用版本库里的版本替换工作区的版本,无论工作区是修改还是删除,都可以“一键还原”。
分支使用
git branch
:查看分支git branch <name>
:创建分支git checkout <name>
:切换分支git checkout -b <name>
:创建并切换分支git merge <name>
:合并某分支到当前分支git merge --no-ff -m "merge with no-ff" <name>
:强制禁用Fast forward模式,不丢掉分支信息git branch -d <name>
:删除分支
bug分支
当手头工作没有完成时,先把工作现场git stash一下,然后去修复bug,修复后,再git stash pop,回到工作现场。
git stash
:"储存"当前工作现场git stash list
:查看已储存现场git stash apply
:恢复现场git stash pop
:恢复现场并产出储存
JetBrains系列使用git
小结
- 先在GitHub上建好repository,git clone 到本地
- 鼓励大量使用分支
- 通过创建bug分支的方式来修复bug
- 开发一个新feature,最好新建一个分支