• 【3】Git命令


    个人推荐的Git知识学习网站:https://git-scm.com 。

    git常用操作图

    init -> add -> commit -> remote -> push

    初始化本地仓库

    cd ./gitDemo
    $ echo "# Share" >> README.md
    ##初始化仓库
    $ git init
    ##添加文件至暂存区
    $ git add README.md
    ##提交文件至本地仓库
    $ git commit -m "first commit"
    

    commit 命令

    ## -m :提交注释
    $ git commit -m "Story 182: Fix benchmarks for speed"
    ## -a :跳过使用暂存区域
    $ git commit -a -m 'added new benchmarks'
    

    提交至远程仓库

    ##添加远程仓库:git remote add [shortname] [url] ,仅需指定一次,会自动保存在git config中
    $ git remote add origin https://github.com/HiMyCode/GitStudyDemo.git
    ##推送至远程仓库
    $ git push -u origin master git push [remote-name] [branch-name]
    ##查看远程仓库信息:git remote show [remote-name]
    $ git remote show origin
    ##修改远程仓库的本地简称:
    $ git remote rename pb Paul
    ##移除远程仓库paul
    $ git remote rm paul
    

    注意:对远程仓库的重命名,也会使对应的分支名称发生变化,原来的 pb/master 分支现在成了 paul/master。

    fetch/clone -> checkout

    clone仓库

    ##git clone <版本库的网址> <本地目录名>
    ##使用默认仓库名grit
    $ git clone git://github.com/schacon/grit.git
    ##使用仓库名mygrit
    $ git clone git://github.com/schacon/grit.git mygrit
    

    说明:git clone将其他仓库克隆到本地(从无到有),包括被clone仓库的版本变化,即.git文件夹里存放着与远程仓库一模一样的版本库记录。

    pull更新仓库

    ##拉取远程服务器的master分支合并到temp分支中
    $ git checkout temp
    $ git pull origin master
    

    fetch更新仓库

    ##查看当前配置的远程库
    $ git remote
    ## -v :显示远程仓库地址
    $ git remote -v
    
    ##获取远程仓库到本地,默认分支 master : git fetch [remote-name]
    ##拉取origin仓库的master分支到本地的origin/maste
    $ git fetch origin master
    ##将拉取到本地的origin/maste合并到本地仓库
    $ git merge origin/master
    
    ##拉取origin仓库的master分支到本地的temp分支
    $ git fetch origin master:temp
    ##合并temp分支到master分支
    $ git merge temp
    ##删除temp分支
    $ git branch -d temp
    

    说明:
      git clone 命令本质就是自动创建了本地的 master 分支用于跟踪远程仓库中的 master 分支。
      git pull 从原始克隆(本地仓库clone的仓库)的远端仓库中抓取数据后,合并到工作目录中的当前分支,存在产生冲突的可能,相当于git pull = git fetch + git merge。
      git branch 只是将远端的数据拉到本地仓库,并不自动合并到当前工作分支,只有当你确实准备好了,才能手工合并。

    checkout检出

    ##切换分支到
    git chectout temp
    

    其他命令总结

    rm 命令

    ##删除本地文件,暂存区文件仍在,git status 提示 Changes not staged for commit
    $ rm grit.gemspec
    ##删除暂存区文件
    $ git rm grit.gemspec
    ## -f :强制删除暂存区文件,删除那些修改过并且已经放到暂存区域的文件
    $ git rm -f grit.gemspec
    ##使用 glob 匹配模式
    ##删除 log/ 目录下扩展名为 .log 的所有文件
    $ git rm log/*.log
    ##删除以 ~ 结尾的所有文件
    $ git rm *~
    

    移动命令(重命名)

    $ git mv README.txt README
    ##以上命令等价于以下三条命令
    $ mv README.txt README
    $ git rm README.txt
    $ git add README
    

    查看提交历史

    ##简要提交版本日志记录
    $ git log
    ## -p:详细显示每次提交的内容差异,-n : 仅显示最近的n次更新:
    $ git log -p -2
    ##查看文件提交历史作者,-L:指定开始和结束行
     git blame -L 20,30 test.md
    

    说明:因命令行查看log不便,暂不扩展。

    撤销操作--修改最后一次提交

    ##撤销提交
    $ git commit --amend
    ##修改提交信息,重新提交
    $ git commit -m 'initial commit'
    ##新增遗漏文件
    $ git add forgotten_file
    ##重新提交
    $ git commit --amend
    

    说明:上面的后三条命令最终只是产生一个提交,第二个提交命令修正了第一个的提交内容。

    撤销操作--取消已经暂存的文件

    ##撤销本次所有暂存,暂存区的目录树会被 master 分支指向的目录树所替换,工作区不受影响
    $ git reset HEAD
    ##撤销单个暂存文件
    $ git reset HEAD benchmarks.rb
    ##直接从暂存区删除file文件工作区则不做出改变
    $ git rm --cached <file>
    

    撤销操作--取消对文件的修改(修改过但未暂存)

    ##用暂存区全部或部分文件替换工作区的文件,会清除工作区中未添加到暂存区的改动
    $ git checkout .
    $ git checkout -- <file>
    
    ##用 HEAD 指向的 master 分支中的全部或者部分文件替换暂存区和以及工作区中的文件,同时清除工作区和暂存区中未提交的改动
    git checkout HEAD .
    git checkout HEAD <file>
    
    

    配置相关命令

    ##查看所有配置信息
    $ git config --list
    ##查看指定变量配置信息
    $ git config user.name
    ##配置用户名及邮箱
    $ git config --global user.name "dis"
    $ git config --global user.email dis@qq.com
    ##配置默认编辑器
    $ git config --global core.editor vim
    ##配置默认差异分析工具
    $ git config --global merge.tool vimdiff
    

    说明:对于 git config --list 列出的重复的变量名,其来自不同的配置文件(比如 /etc/gitconfig 和 ~/.gitconfig),Git 实际采用的是最后一个。

    tag 打标签

    ##列出现有标签
    $ git tag
    
  • 作者: DeepInThought
    出处: https://www.cnblogs.com/DeepInThought
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
  • 相关阅读:
    busybox 注意事项
    Implicit vs Explicit Sharing
    Font Creator Program 字库修改合并软件
    Iperf 源代码分析(四)
    QML 中文支持
    file operation
    MFC异常 与C++标准异常
    统一建模语言(UML) 版本 2.0
    MultiByteToWideChar和WideCharToMultiByte用法详解
    UML 基础: 类图
  • 原文地址:https://www.cnblogs.com/DeepInThought/p/11131356.html
  • Copyright © 2020-2023  润新知