美文网首页
浅谈Git(二):Git的基本操作

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

作者: 码农井都弟 | 来源:发表于2020-03-15 20:20 被阅读0次

    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.

    相关文章

      网友评论

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

          本文链接:https://www.haomeiwen.com/subject/ihrbehtx.html