浅谈Git(二):Git的基本操作

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.

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Add & Commit git init 初始化一个 Git 仓库(repository),即把当前所在目录变成...
    冬絮阅读 4,924评论 0 9
  • 以下笔记主要参考gitgot,大致了解git使用和原理。 第一部分我们从个人的视角去研究如何用好Git,并且揭示G...
    carolwhite阅读 2,430评论 0 1
  • 只为记录,以后尽量按照Git的官方帮助文档写! clone 从远程库中克隆到本地目录 init 此命令用于已有项目...
    四五20阅读 618评论 0 0
  • 1. GIT命令 git init在本地新建一个repo,进入一个项目目录,执行git init,会初始化一个re...
    江边一蓑烟阅读 827评论 0 0
  • 紧张的一天。 学校说让上午把计划交了,那时已接近中午,想放弃挣扎,下午再交,但是心里还是装着它,连吃饭都恍恍惚惚。...
    蓝雪花a阅读 149评论 0 2