1 创建版本库
① 创建一个空的目录
② 进入该目录
③ 将该目录变成Git可以管理的仓库
git init
2. Git管理文件
① 将某文件添加到Git仓库中
git add 文件名
② 把文件提交到仓库中
git commit -m "说明"
3. Git管理本地文件
① 查看git的状态
git status
② 查看文件与上一次有什么不同
git diff 文件名
③ 查看提交日志
git log
git log --pretty=online 规范输出日志
④ 回退到上一个版本
git reset --hard HEAD
⑤ 回退到特定的版本
git reset --hard 版本id(id的前几个字符即可识别)
⑥ 查看git的每一次命令
git reflog
⑦ 查看工作区和版本库内文件的不同
git diff HEAD --文件名
⑧ 丢弃工作区的修改
git checkout -- 文件名
--符号很重要,如果没有该符号则表示切换到另一分支
⑨ 撤销暂存区的文件
git reset HEAD 文件名
可以将暂存区的修改回退到修改区
⑩ 删除版本库中的文件,当文件被删除掉后,版本库中还会存留,可以使用git rm命令删除掉
git rm 文件名
git commit -m "..."
如果删除错了但没有提交,可以使用checkout恢复
git checkout -- 文件名
如果删除错了但已经提交,可以使用git reset回退
get reset --hard 版本号回退
4. Git远程仓库
① 添加远程库
git remote add origin 仓库url地址
git remote add [<options>] <name> <url>
eg:
git remote add origin https://github.com/FengChen0315/Firstgitproject.git
git push -u origin master
② 从远程仓库克隆
git clone [url]
5. 分支管理
① 创建合并分支
git checkout -b dev 创建并切换到dev分支
相当于:
git branch dev
git checkout dev
② 合并分支
git checkout master 切换到主分支
git merge dev 合并dev分支到主分支
git branch -d dev 删除分支dev
③ git解决冲突
当git无法自动合并分支时,就必须首先解决冲突。解决完冲突后,再提交,合并完成。
解决冲突就是把Git合并失败的文件手动编辑为我们希望的内天,再提交。
④ 查看分支合并图
git log --graph
⑤ 使用普通模式进行合并
git merge --no-ff -m "description" 分支名
--no-ff参数表示禁用Fast forward,使用该参数就可以使用普通模式合并,合并后的历史有分支,可以看出来曾经做过合并。
⑥ "存储"当前工作现场和恢复工作现场,在stash前必须先add添加到暂存区
git add 文件名
git stash -存储当前工作现场
git stash list -查看存储的工作现场
git stash pop -恢复工作现场
恢复工作现场的另一种方法:
git stash apply stash@{编号}
git stash drop
⑦ 强行删除一个没有被合并过的分支
git branch -D 分支名
每开发一个新功能,最好新建一个分支
⑧ 推送分支
git push origin mster
git push origin 分支名
⑨ 多人协作的工作模式
1. 首先,可以试图用git push origin <branch-name>推送自己的修改;
2. 如果推送失败,则因为远程分支比你的本地更新,需要先用git pull试图合并;
3. 如果合并有冲突,则解决冲突,并在本地提交;
4. 没有冲突或者解决掉冲突后,再用git push origin <branch-name>推送就能成功!
5. 如果git pull提示no tracking information,则说明本地分支和远程分支的链接关系没有创建,用命令git branch --set-upstream-to <branch-name> origin/<branch-name>。
6. 这就是多人协作的工作模式,一旦熟悉了,就非常简单。
⑩ 将本地未push的分支提交历史整理成直线
git rebase
rebase的目的是使得我们在查看历史提交的变化时更容易。
6. 标签管理
tag就是一个让人容易记得住的有意义的名字,它跟某个commit绑定在一起
① 创建标签
git tag 标签名 # 创建标签
git tag # 查看所有标签
git tag 标签名 提交的id号 # 为某一个提交提案加id号
git show 标签名 # 查看标签信息
git tag -a 标签名 -m "说明" 提交的id号;-a指定标签名,-m指定说明文字
标签总是和某个commit挂钩。如果这个commit既出现在master分支,又出现在dev分支,那么在这两个分支上都可以看到这个标签。
② 删除标签
删除本地标签
git tag -d 标签名
删除远程标签
git tag -d 标签名 # 先删除本地标签
git push origin :refs/tags/标签名 # 删除远程标签
③ 推送标签到远程服务器
git push origin 标签名 # 推送某个标签到远程服务器
git push origin --tags # 一次性推送全部尚未推送的标签到服务器
7. 自定义Git
① 配置Git显示颜色
git config --global color.ui true
② 忽略特殊文件
添加一个.gitignore文件,在文件中写要忽略的文件
提交.gitignore文件到Git
③ 配置别名
git config --global alias. 别名 原命令 # 为命令设置别名