zoukankan      html  css  js  c++  java
  • git基本命令

    1.初始化仓库:git init

    2.添加到暂存区:git add <file>

    3.提交到仓库:git commit -m <msg>

    4.查看仓库状态:git status

    (1)git status -s: 查看仓库的简短状态,可能会得出以下显示:

    文件前两个字符分别表示暂存区状态、工作区状态。

    ??表示文件未跟踪。

    第一个M表示文件暂存区已修改(modify),第二个M表示文件在工作区中已修改但未add到暂存区,两个M表示文件修改add到暂存区后,又在工作区中修改过,即工作区、暂存区、仓库中的文件都不相同。

    第一个A表示一个新添加的文件add到了暂存区,但未提交到仓库;AM表示这个新添加的文件add到了暂存区,但又在工作区中做出了修改。

    5.查看提交记录:git log

    (1)git log --pretty=oneline:单行显示提交记录。

    6.git diff <file>:比较文件在两个区之间的差异,后面不加<file>则比较所有有修改的文件。

    (1)git diff <file>:比较工作区与暂存区;

    (2)git diff --cached:比较暂存区与仓库;

    (3)git diff HEAD:比较仓库与工作区。

    7.git reset:版本回退,其本质是改变“分支游标”的指向。

    (1)git reset <commit> -- <file>:不改变“分支游标”的指向,仅用指定commit的file覆盖到暂存区里。<commit>缺省值为HEAD。因此,git reset -- <file> = git reset HEAD -- file,即撤销文件在暂存区的修改。

    (2)git reset --soft/mixed/hard <commit>:没有指定reset的文件,即重置到commit版本,因此“分支游标”发生改变,相当于废弃了commit之后的版本。<commit>缺省值是HEAD。soft指仅重置仓库,mixed为缺省值,指重置暂存区和仓库,hard指重置工作区、暂存区、仓库。

    8.git checkout:检出命令,本质改变HEAD的指向。

    (1)git checkout <commit> -- <file>:不改变HEAD指向,仅用指定commit的file覆盖到工作区。<commit>缺省值是暂存区的file。因此,git checkout -- <file>相当于在工作区修改未add到暂存区时撤销工作区中文件的修改。

    (2)git checkout <branch>:改变HEAD指向,HEAD指向到<branch>,<branch>缺省值是HEAD。其实这里也可以git checkout <commit>,但是这样会出现“分离式指针”。所以checkout命令一般只用作切换分支用。

    (3)分离式指针:即HEAD不是指向一个branch,而是指向了一个具体的commit。

    9.reset与checkout的区别

    后面跟file:

    (1)reset将文件覆盖到暂存区,checkout将文件覆盖到工作区;

    (2)reset --  file的commit缺省值是HEAD,checkout -- file的则是暂存区;

    后面不跟file:

    (1)reset改变“分支游标”指向,checkout改变HEAD指向;

    (2)两者缺省值都是HEAD。

    10.git rm <file>:删除仓库中的file。

    当我们在工作区中删除某个文件后,实际上文件还保留在仓库中。当我们确定真的不需要这个文件,可用git rm将删除操作记录到暂存区,就像跟踪新文件用git add一样,然后还要git commit提交。如果我们误删了某个工作区中的文件,可用git checkout -- <file>用暂存区的文件覆盖到工作区中。

    11.分支管理

    (1)git branch:查看分支情况;git branch -v:查看分支情况以及显示各分支游标指向的commit;

    (2)git branch <branch_name>:在当前HEAD创建分支;

    (3)git checkout <branch>:切换到指定分支;

    (4)git checkout -b <branch>:相当于(2)(3)的简写;

    (5)git checjout -d <branch>:删除指定分支;

    12.git merge <branch>:将指定的分支合并到当前分支;

    13.标签管理

    (1)git tag:查看标签;

    (2)git tag xxx <commit>:给指定commit打标签,缺省值是HEAD;

    (3)git tag -d xxx:删除指定标签。

    14.git与远程库

    (1)创建ssh key:ssh-keygen -t -rsa;

    (2)关联远程库:git remote add origin <url>,origin是远程库的标识符(名称);

    (3)git push origin master:将指定分支指向的commit推送到远程库;

    (4)从远程库克隆:git clone <url>。

    15.全局设定

    (1)设置邮箱与用户名,用于每次提交的记录:

    git config --global user.name ""

    git config --global user.email ""

    (2)git config --global alias.st status

    设置命令别名。如上设置后,查看仓库命令变为git st。其他常见命令别名还有:

    commit --> ci

    checkout --> co

    branch --> br

    具体参考:

    1.《git权威指南》(强烈推荐);

    2.《gitbook》(git官方文档)。

  • 相关阅读:
    Nginx 反向代理多个后台服务端口
    微信小程序,横向布局,纵向布局
    Maven的标准settings.xml文件
    Springboot 复杂查询及SQL拼接笔记
    ElementUI 设置显示侧栏滚动条elscrollbar,隐藏横向滚动条
    让俺内牛满面的编辑器啊~
    Javascript 对话框 (遇到 Ajax Load无法加载问题)
    thinkpad s5 电源功率不足提示
    NAO机器人开发环境配置
    Choregraphe 2.8.6.23动作失效
  • 原文地址:https://www.cnblogs.com/lqxing1994/p/9288327.html
Copyright © 2011-2022 走看看