美文网首页
git简单常用命令

git简单常用命令

作者: 北京硕爷 | 来源:发表于2020-06-20 21:25 被阅读0次

    作者:夕夕石(硕爷)


    目 录
    一、git add
    二、git commit
    三、git branch :查看、创建、删除分支
    四、git checkout:操作文件、分支
    五、git merge
    六、git pull
    七、git push:将本地版本库推送到远程服务器
    八、git status,作用:显示工作区暂存区的状态
    九、git log:显示提交日志信息
    十、git diff


    一、git add

    作用:添加需要上传的文件,从工作区暂存区

    1、将某文件暂存
    git add file
    
    2、将当前目录下所有文件暂存
    git add .
    

    git版本1.x:将修改操作的文件和未跟踪新添加的文件添加到git系统的暂存区,注意不包括删除

    git版本2.x:作用等同于git add -A .,将所有文件都暂存,包括新增+修改+删除的文件

    3、将当前目录下修改+删除的文件暂存
    git add -u .
    

    -u 表示将已跟踪文件中的修改和删除的文件添加到暂存区,不包括新增加的文件

    4、将当前目录下新增+修改+删除的文件暂存
    git add -A .
    

    -A 表示将所有的已跟踪的文件的修改删除新增的未跟踪的文件都添加到暂存区。

    5、总结

    git 1.x版本:

    命令 新增的文件 修改的文件 删除的文件 说明
    git add -A . 暂存所有
    git add . 暂存 新增、修改的文件
    git add -u . 暂存 修改、删除的文件

    git add -ugit add --update的缩写

    git 2.x版本:

    命令 新增的文件 修改的文件 删除的文件 说明
    git add -A . 暂存所有文件
    git add . 暂存所有文件
    git add add --ignore-removal . 暂存 新增、修改的文件
    git add -u . 暂存 修改、删除的文件

    在2.x版本中,add .add -A的功能相同,用add --ignore-removal .来代替旧版本add .的功能。

    二、git commit

    作用:将暂存区的改动提交到本地版本库

    1、最常用的 -m
    git commit -m "message"
    

    最常用的形式,-m后面跟提交描述

    2、add所有并且commit
    git commit -a -m "message"
    

    类似于 git add -A . + git commit -m "message"

    3、修改上一次的提交
    git commit --amend // 回车后,可以修改上次commit的-m信息
    

    三、git branch :查看、创建、删除分支

    1、查看本地所有分支
    git branch
    
    2、查看本地+远程所有分支
    git branch -a
    
    3、创建名为dev的分支
    git branch dev 
    
    4、删除dev分支,-D强制删除分支
    git branch -d dev
    git branch -D dev // 强制删除分支
    
    5、查看本地分支对应的远程分支(远程分支会显示在中括号)
    git branch -vv // 远程分支会显示在中括号
    
    6、关联本地分支与远程分支
    git branch --set-upstream-to=origin/远程分支名
    
    或者简化为:git branch -u origin/远程分支名
    
    7、给分支重命名(当前分支不能是要改名的分支)
    git branch -m oldName newName
    

    四、git checkout:操作文件、分支

    1、放弃单个文件filename的修改
    git checkout filename
    
    2、将分支切换到master
    git checkout master
    
    3、切换到已有的dev分支或创建并切换到dev分支
    git checkout -b dev
    

    如果分支存在则只切换分支,若不存在则创建并切换到dev分支

    4、以远程分支为基础创建本地分支
    git checkout -b 本地分支名 origin/远程分支名
    

    五、git merge

    1、将dev分支内容合并到当前分支
    git merge dev
    

    六、git pull

    将远程主机的最新内容拉下来后直接合并
    git pull // =git fetch + git merge
    

    七、git push:将本地版本库推送到远程服务器

    1、将本地当前分支推送到远程指定分支
    git push origin master
    
    2、push本地某分支远程分支
    git push origin 本地某分支名:远程分支名
    
    3、删除远程分支,保留本地分支
    git push origin --delete [远程分支名]
    
    或者:git push origin :远程分支名
    
    4、推送到远程指定分支,且以后可以简写为git push
    git push -u origin 远程分支名 // -u参数
    

    (简写后,推送到的是你上次-u指定的远程分支)

    八、git status

    作用:显示工作区暂存区的状态

    九、git log:显示提交日志信息

    一篇关于git log比较好的文章

    1、将显示最近三次的提交
    git log -3
    
    2、简化输出:git log --oneline

    仅仅输出commit hash 前7个字符串和commit message.

    $ git log --oneline
    0005d1e3f (HEAD -> master, origin/master, origin/HEAD) Fix typo (#14576)
    f290138d3 react-debug-tools accepts currentDispatcher ref as param (#14556)
    b4ad8e947 rename useImperativeMethods -> useImperativeHandle (#14565)
    ab03e3d65 Inject ReactCurrentDispatcher ref to DevTools (#14550)
    19ef0ec11 Separate current owner and dispatcher (#14548)
    
    3、git log -p:输出每次commit的改动的详细代码行变动,与diff一致
    $ git log -p
    commit 0005d1e3f54b79fe4707fbccc44b89e0fb4ce565 (HEAD -> master, origin/master, origin/HEAD)
    Author: Carl Mungazi <c_mungazi@hotmail.co.uk>
    Date:   Sat Jan 12 05:46:05 2019 +0000
    
        Fix typo (#14576)
    
    diff --git a/packages/scheduler/src/Scheduler.js b/packages/scheduler/src/Scheduler.js
    index 480ec81c4..a6e27850d 100644
    --- a/packages/scheduler/src/Scheduler.js
    +++ b/packages/scheduler/src/Scheduler.js
    @@ -194,7 +194,7 @@ function flushWork(didTimeout) {
             firstCallbackNode !== null &&
             !(enableSchedulerDebugging && isSchedulerPaused)
           ) {
    -        // TODO Wrap i nfeature flag
    +        // TODO Wrap in feature flag
             // Read the current time. Flush all the callbacks that expire at or
             // earlier than that time. Then read the current time again and repeat.
             // This optimizes for as few performance.now calls as possible.
    
    commit f290138d329aa7aa635d88868705b23372e9f004
    Author: Brian Vaughn <brian.david.vaughn@gmail.com>
    Date:   Thu Jan 10 12:56:52 2019 -0800
    
    4、git shortlog:以作者分类显示简要的commit
    刘翔 (5):
          调试iOS
          调试iOS
          change
          change
          change
    
    红月 (27):
          add cases
          add and modify cases
          add case
          add cases
          add and modify cases
          add cases
          update
          update
          update
          modify cas
    
    5、git shortlog -s:可以用来统计每个作者的commit数量
    [xixishi@shuoDeMBP:java-dev (zs)]$ git shortlog -s
        40  徐庆丰
         5  左宗棠
        27  马云
    [xixishi@shuoDeMBP:java-dev (zs)]$
    
    6、git shortlog -n:可以用来对统计的量进行倒序排列
    7、git log --author="硕爷":过滤只显示给定的用户
    8、git log --no-merges:不显示merge的记录
    9、查询commit1与commit2之间的记录,包括commit1和commit2
    git log commit1_id commit2_id
    
    10、指定格式显示日志信息。
    git log --pretty=oneline
    
    git log --pretty=format:"%an %ae %ad %cn %ce %cd %cr %s" --graph
    
    11、git show

    作用:显示各种类型的对象。默认显示最近一次提交内容

    十、git diff

    作用:显示提交和工作树等之间的更改。

    1、默认显示工作区 vs 暂存区
    git diff
    
    2、工作区 vs 版本库
    git diff head
    
    3、 暂存区 vs 版本库
    git diff --cached
    

    作者:夕夕石(硕爷)


    相关文章

      网友评论

          本文标题:git简单常用命令

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