美文网首页
Git的基本用法

Git的基本用法

作者: rommy020 | 来源:发表于2018-08-10 16:47 被阅读0次

    参考文章:
    1: https://www.cnblogs.com/kuyuecs/p/7111749.html
    2: http://www.360doc.com/content/16/0519/10/10058718_560380335.shtml

    配置 git

    git config --global -e
    

    git init
    描述:
        在本地新建一个repo,进入一个项目目录,执行git init,会初始化一个repo,并在当前文件夹下创建一个.git文件夹.
    例子:

    git init
    

    git add
    描述:
        将所做的修改放入git的暂存区(staging area)供commit时候使用.会递归地添加当前工作目录中的所有文件.
    例子:

    #1: 添加所有的修改到缓存区
    git add .  
    
    #2: 添加指定的文件到缓存区
    git add {filename}
    

    git commit
    描述:
        提交已经被添加到暂存区的改动.
        git一般的步骤: add到本地的缓存区 >> 通过commit提交修改.
        该命令有不同的参数:
        a: git commit -m "提交时候的备注" #表示普通提交到本地的仓库
        b: git commit -a #会先把所有已经track的文件的改动add进来,然后提交(有点像svn的一次提交,不用先暂存, 也就是可以忽略git add .). 对于没有track的文件,还是需要git add一下.
        c: git commit -am "提交时候的备注" #其实就是 commit -a & -m, 不用add, 直接提交,和-a, -am相似
    例子:

    #1: 把用git add .加入到stage的文件提交到本地仓库.
    git commit -m "comment"  
    
    #2: 会把所有在track的文件, 都commit
    git commit -a 
    
    #3: 其实就是 commit -a & -m, 不用add, 直接提交, 和-a效果类似
    git commit -am "comment"
    

    git checkout
    描述:
        在本地新建一个repo,进入一个项目目录,执行git init,会初始化一个repo,并在当前文件夹下创建一个.git文件夹.
    例子:

    git init
    
    #1: 切换到某个分支下面
    git checkout  {branch}
    
    #2: 从当前分支的本地缓冲区拉文件覆盖当前文件
    git checkout -- {filename}
    
    #3: 从指定的分支拉文件到本地工作区
    git checkout {branch} -- {filename}
    
    #4: 移动HEAD到某个版本, 相当于检出指定版本的文件,可以通过git log --oneinline 获得.
    git checkout -f {commit}
    
    #5: 用当前版本和指定版本比较2个版本中指定文件的差异
    git checkout -p {branch} -- {filename}
    
    #6: 将当前版本修改的内容apply到指定分支下, 然后切换到指定的分支
    git checkout --merge {branch}
    

    git branch
    描述:
        新建分支

    #1: 新建一个分支branch
    git branch {branch}
    
    #2: 获取全部的分支
    git branch
    
    #3: 基于当前分支的某一次commit创建分支
    git branch {ranchname} {commit}
    

    git log
    描述:
        查看所有的commit提交记录,他可以有很多参数.
    例子:

    #1: 最简单
    git log
    #结果
    commit ffb33b8cefba37ef7b5e2f67d07ae39009ab688d
    Author: user <email>
    Date:   Sun Sep 30 11:05:11 2018 +0800
    
        change get qrcode url
    
    #2: 一行显示一个提交
    git log --oneline
    #结果
    ffb33b8 comment1
    5e7f1dd comment2
    5a87301 comment3
    
    #3: 统计某个文件修改了多少
    git log --stat app/app.js
    #结果
    commit ffb33b8cefba37ef7b5e2f67d07ae39009ab688d
    Author: user <email>
    Date:   Sun Sep 30 11:05:11 2018 +0800
    
        change get qrcode url
    
     app/app.js | 4 ++--
     1 file changed, 2 insertions(+), 2 deletions(-)
    
    #4: 统计某个文件修改了多少, 具体修改了什么
    git log --stat -p app/app.js
    结果和git log --stat 差不多,只不过多了具体修改的内容.
    
    #5: 简要的显示每个人做了多少修改
    git shortlog
    #结果
    user (71):
          comment1
          comment2
          comment3
    
    #6: 格式化日志格式, format的占位符可以在文档中获得(git log --help)
    $ git log --pretty=format:"%cn committed %h on %cd %s"
    #结果
    user1 committed ffb33b8 on Sun Sep 30 11:06:39 2018 +0800
    user2 committed 0101f7a on Mon Aug 20 11:22:01 2018 +0800
    user3 committed 86b77f8 on Mon Jul 30 17:14:55 2018 +0800
    
    #7: 查看最近3次的提交
    git log -3
    #结果
    ffb33b8 change get qrcode url
    0101f7a add project.config.json
    86b77f8 show qrcode
    
    #8: 想按日期来查看修改(after, before, yesterday, 1 week ago, ...)
    git log --after="2018-09-10"
    #结果
    ffb33b8 change get qrcode url
    0101f7a add project.config.json
    86b77f8 show qrcode
    266787c 增加输出二维码的功能.
    
    #9: 按作者查找
    git log --author="xxx"
    #结果
    commit 0101f7aef71470456eb23aa579c382674e5fa07e
    Author: userId <email>
    Date:   Mon Aug 20 11:22:01 2018 +0800
    
        add project.config.json
    
    #10: 按提交信息
    git log --grep="xxx"
    
    #11: 按文件
    $ git log --oneline  --pretty=format:"%cn committed %h on %cd" app/app.js
    #结果
    user1 committed ffb33b8 on Sun Sep 30 11:06:39 2018 +0800
    user1 committed 5e7f1dd on Fri Jul 20 17:50:30 2018 +0800
    
    

    git show
    描述:
        查看提交的详情, 可以从git log中拿到commit的hashid, 然后通过git show {hashid} 或者 git show {hashid} {filename}来查看详情
    例子:

    #1: 查看最近一次提交的
    git show
    #结果
    commit ffb33b8cefba37ef7b5e2f67d07ae39009ab688d
    Author: userId <email>
    Date:   Sun Sep 30 11:05:11 2018 +0800
    
        change get qrcode url
    
    diff --git a/app/app.js b/app/app.js
    index 7745ae5..c7b08b7 100644
    --- a/app/app.js
    +++ b/app/app.js
    
    #2: 根据文件检查, 和上面#1类似, 只不过是指定了文件名字
    git show file.txt
    
    #3: 根据文件, 版本查, 结果和#1一样
    git show 7498bb80778fcc9de9f44de62e4d298b7d7f0111 "file01.txt"
    

    比较

    #1: 比较远程服务端的master 和 develop的 修改情况
    git log origin/master..origin/develop --oneline --pretty=format:"%cn committed %h on %cd"
    
    #2: 统计远程服务端master 和 develop 的修改情况
    $ git diff --stat origin/master origin/develop
    
    #3: 和本地缓存比较
    git diff -- {文件名字}
    

    github 相关操作

    #1: …or create a new repository on the command line
    echo "# test" >> README.md
    git init
    git add README.md
    git commit -m "first commit"
    git remote add origin https://github.com/yangtao123456/test.git
    git push -u origin master
    
    #2: …or push an existing repository from the command line
    git remote add origin https://github.com/yangtao123456/test.git
    git push -u origin master
    
    #3: …or import code from another repository
    You can initialize this repository with code from a Subversion, Mercurial, or TFS project.
    

    分支的合并 参考网站

    1: 先切换到准备合并的分支, 比如我想把develop的修改内容合并到master
        git checkout master
    
    2: 合并
        git merge develop
    

    相关文章

      网友评论

          本文标题:Git的基本用法

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