1. git 安装时全局参数配置
//查看当前配置的author用户名
git config --global user.name
//查看当前配置的author邮箱
git config --global user.email
//修改当前author信息
git config --global user.name "your name" user.email "your email"
2. 创建一个本地仓库
git init
3. 显示当前工作目录
git status
4. 添加文件到暂存区、提交
//添加一个类暂存区
git add class1.java
//添加多个类文件暂存区
git add class2.java class3.java ...
//将所有修改(modify)以及新文件(add)添加到暂存区
git add .
//将所有修改(modify)以及删除(delete)添加到暂存区
git add -u
//将所有修改(modify)以及删除(delete)、新增(add)添加到暂存区
git add -a
git add -m "提交说明"
//绑定到远程仓库
git remote add origin <git ip-address>
//提交
git push
5. Git log 查看版本信息
//默认输出
git log --online
//在log的基础上输出增删改的数据统计
git log --stat
//输出commit的具体修改内容
git log -p
//限定提交作者
git log --author
//限定日期
git log --before -after
//限制输出数量
git log -n
6. Git Stash脏目录、临时储存区
当你的Git存在正在修改的索引以及文件,但此时你需要一个干净的工作目录,这种情况下不可能把未完成的代码提交,或者创建新分支。
举例子来说,你当前在开发新功能,此时反馈有个紧急bug要修复,那此时Git stash是个不错的选择。
处理策略:先将当前代码stash,然后修复完bug之后,再将未完成的代码unstash,继续开发。
//显示stash列表
git stash list
//显示做了哪些代码的改动
git stash show
//显示stash第一个的详情代码改动
git stash show -p
//执行储存时,添加备注
git stash save "message"
//stash栈中pop一次,并在栈中删除当前栈顶的内容
git stash pop
//stash栈中恢复一次,不在栈中删除当前栈顶的内容
git stash apply
//删除某次stash中的改动
git stash drop <stash name>
//清空stash
git stash clear
7. 修改commit message
//修改最新的commit message
git commit --amend
//可应用于修改多次commit
git rebase -i
8. 分支操作
//显示当前所在分支
git branch
//创建一个名为dev2的分支
git branch dev2
//显示本地以及远程的所有分支
git branch -a
//检出到dev分支
git checkout dev
//检出到dev分支,如果不存在dev,则以HEAD所在的地方创建dev分支
git checkout -b dev
//修改分支名dev为develop
git branch -m dev develop
//删除本地分支dev
git branch -d dev
//删除远程分支dev
git push origin -d dev
//插入一个checkout的其他命令:检出文件:意思是某个文件上的修改的恢复
git checkout xx.java
9. git reset操作
远程库回滚:
如果拥有强制提交权限,可使用--hard命令,不过会丢失远程库代码~(极不建议)
建议使用revert
--soft 完全保留 工作区和暂存区
--mixed 完全保留工作区,彻底清除暂存区
--hard 彻底清除工作区和暂存区
--keep 保留工作区和HEAD之间的差异
Revert 反做,使用一次commit来回滚之前的内容:
举例子来说:比如分支1当前有A(id 001) -> B(002) -> C(003), 版本B存在Bug,需要进行回退处理,又不想影响版本C的功能:
git revert 002,会生成新的commit D(004)
10. git reflog
查看分支操作记录,包括reset记录和删除记录
继续举例子: 当前提交树:A->B->C,我回滚Reset到了B,当前提交树没有了版本C的提交。
第二天起床我后悔了,该怎么办呢?
使用Git reflog会输出你的流程大概为A(001)->B(002)->C(003)->D(004 Reset to B),
这个时候重新调用git reset --hard C。那么当前提交树又变成A -> B -> C.
网友评论