• git常用命令总结


    最近学习了git的使用,现在讲git一些常用命令。

    1.git的安装

    设置账号和密码

    $ git config --global user.name "Your Name"

    $ git config --global user.email "email@example.com"

    如果某个特别的git控件要使用不同的账号,则设置的时候不加--global

    2.设置别名

    $ git config --global alias.st status

    ----设置status命令的别名为status,可以再 .git/config文件中查看

    3.创建版本库

    进入要创建版本库的目录,$ git init

    4.添加文件

    $ git add readme.txt

       git -f add 文件名         可以将设置为忽略的文件添加到版本库

    5.提交文件

    $ git commit -m "提交的注释"

    6.查看当前的状态(工作空间的状态与版本库的对比)

    $ git status

    7.文件对比

    $ git diff my.txt               ----工作区与版本库add操作后的对比

    $ git diff HEAD -- my.txt ----工作区与版本库commit操作后的对比 

    8.查看提交日志

    $ git log                                ----显示完整的信息

    $ git log --pretty=oneline             ----查案简化的信息

    9.版本回退

    $ git reset --hard HEAD^      ----回退到最近最后一个提交的版本

    $ git reset --hard 3628164(headhash) ----回退到指定的版本(可以使用$ git 

    reflog查看head 信息)

    10.撤销修改(丢弃工作区的修改)

    $ git checkout -- my.txt

    ----命令git checkout -- my.txt意思就是,把my.txt文件在工作区的修改全部撤销,这里有两种情况:

    一种是my.txt自修改后还没有被放到暂存区,现在,撤销修改就回到和版本库一模一样的状态;

    一种是my.txt已经添加到暂存区后,又作了修改,现在,撤销修改就回到添加到暂存区后的状态。

    总之,就是让这个文件回到最近一次git commitgit add时的状态。

    11.删除文件

    $ rm my.txt ----删除本地文件

    $ git rm my.txt再$ git commit -m "remove test.txt" ----删除版本库的文件

    若本地误删除文件,可以使用$ git checkout -- my.txt复制出版本库中的文件

    12.生成ssh key

    $ ssh-keygen -t rsa -C "youremail@example.com"

    生成完成后用户主目录里找到.ssh目录,里面有id_rsa和id_rsa.pub两个文件,这两个就是SSH Key的秘钥对,id_rsa是私钥,不能泄露出去,id_rsa.pub是公钥,可以放心地告诉任何人

    13.添加远程版本库

    $ git remote add origin git@github.com:xxx/xxx.git ----关联远程库

    $ git push -u origin master ----第一次提交

    $ git push origin master ----以后的提交

    14.创建分支

    $ git checkout -b <你要使用的分支名称>

    这里相当于连个命令:

    $ git branch <你要使用的分支名称>

    $ git checkout <你要使用的分支名称>

    15.查看分支

    $ git branch

    $ git branch -a   查看远程分支(如果没有需要pull一下)

    16.切换分支

    $ git checkout <你要使用的分支名称>

    17.合并分支

    $ git merge <你要合并的分支名称>

    $ git merge --no-ff -m "提交信息" <你要合并的分支名称>

    ----合并分支时,加上--no-ff参数就可以用普通模式合并,合并后的历史有分支,能看出来曾经做过合并,而fast forward合并就看不出来曾经做过合并。

    18.删除分支

    $ git branch -d <你要删除的分支名称>

    19.查看提交的分支图

    $ git log --graph 

    $ git log --graph --pretty=oneline --abbrev-commit ----查看简化的图

    20.将工作区的现场保存

    $ git stash ----将工作区现场存起来

    $ git stash list ----查看保存的现场

    $ git stash pop ----恢复保存的现场

    也可以使用git stash apply恢复,但是恢复后,stash内容并不删除,需要用git stash drop来删除;

    21.克隆远程版本库

    $ git clone git@github.com:xxx/xxx.git

    22.远程仓库信息查看

    $ git remote

    $ git remote -v ----查看更详细的信息

    23.推送信息到远程仓库

    $ git push origin <你要使用的分支名称>

    24.创建远程的分支

    分子创建一般都是本地使用,若要使远程也能使用该分支

    $ git checkout -b <分支名称>  origin/<分支名称>

    $ git push origin <分支名称>

    25.获得远程数据

    $ git pull

    如果git pull也失败了,原因是没有指定本地dev分支与远程origin/dev分支的链接,根据提示,设置devorigin/dev的链接:

    $ git branch --set-upstream <分支名称> origin/<分支名称>

    26.创建标签

    $ git tag <标签名字,如:v1.0> ----默认为HEAD,也可以指定一个commit id

    $ git tag -a <标签名字-m "创建我的tag" ----创建带有说明的标签,用-a指定标签名,

    -m指定说明文字:

    $ git tag <标签名字> <HEADhash> -----在指定的commitHEAD上打标签,可

    以通过$ git log --pretty=oneline --abbrev-commit查看HEAD

     27.查看已创建的标签

    $ git tag

    28.查看具体标签的信息

    $ git show <标签名字>

    29.删除标签

    $ git tag -d <标签名字>

    30.删除远程的tag

    $ git tag -d <标签名字> ----先本地删除,在push

    $ git push origin :refs/tags/<标签名字>

    31.推送标签

    $ git push origin <标签名字> ----推送指定tag

    $ git push origin --tags ----一次推行全部的tag

    32.删除为监控的文件

      # 删除 untracked files

      git clean -f
      # 连 untracked 的目录也一起删掉
      git clean -fd
     
      # 连 gitignore 的untrack 文件/目录也一起删掉 (慎用,一般这个是用来删掉编译出来的 .o之类的文件用的)
      git clean -xfd
     
      # 在用上述 git clean 前,墙裂建议加上 -n 参数来先看看会删掉哪些文件,防止重要文件被误删
      git clean -nxfd
      git clean -nf
      git clean -nfd
     
     33.移除git管制
        git rm --cached  文件名
      git rm -r --cached  文件夹名
     
    3.4获得远程分支到本地
     
      git fetch  //可以将远程分支信息获取到本地
      git checkout -b 本地分子名字 origin/远程分支名字

    101.其他

    101.1 git如何忽略不提交的文件

    Git工作区的根目录下创建一个特殊的.gitignore文件,设置格式

    # 忽略*.o和*.a文件

     *.[oa]

    # 忽略*.b和*.B文件,my.b除外

    *.[bB]

    !my.b

    # 忽略dbg文件和dbg目录

    dbg

    # 只忽略dbg目录,不忽略dbg文件

    dbg/

    # 只忽略dbg文件,不忽略dbg目录

    dbg

    !dbg/

    # 只忽略当前目录下的dbg文件和目录,子目录的dbg不在忽略范围内

    /dbg

     101.2 git查看文件目录

    git ls-files

     32.3 将本地文件推送到远程仓库的流程

      1)初始化本地仓库 git init

      2)  添加和提交本地文件  git add XXX ,git commit  -m '第一次提交'  (git add 文件夹名  可以添加一个文件夹中所有的内容)

      3)关联远程库$ git remote add origin git@github.com:xxx/xxx.git 

      4)推送分支 $ git push -u origin master     (必须要有commit的文件,否则报错src refspec master does not match any)

    102.将本地文件推送到远程git仓库的流程

      1.git init  初始化本地git

      2.git add  添加需要git管理的文件(git add 文件夹可以添加整个文件夹的文件。git 文件1  文件2  文件3 可以同时add多个文件或文件夹 )

      3.git commit -m 'message'  提交add的文件 

      4.git remote add origin git@github.com:xxx/xxx.git ----关联远程库

      5.git pull origin master  先pull,远程git仓库的一些文件可能和本地的不一样吗,需要pull

      6.git push -u origin master ----第一次提交

     

    103.获取远程文件到本地

          1.git init

      2.git remote add origin https://xxxxx.git

      3.git pull origin master

     

    104.修改远程仓库

    git remote -v  查看远程仓库
    git remote rm 仓库名    删除远程仓库
    git remote add origin git@xxx/xxx.git   添加新的远程仓库

     

    105 git clone只能clone远程库的master分支,无法clone所有分支,解决办法

    1. git clone xxxxxx.git  
    2. cd project
    3. git branch -a,列出所有分支名称如下:
    4. git checkout -b myNanme origin/remoteName,作用是checkout远程的remoteName分支,在本地起名为myNanme分支,并切换到本地的myNanme分支
    5.git tag  查看所有的标签
    6.git checkout -b myTag  remoteTag  切换到远程的remoteTag上

     

  • 相关阅读:
    vim delete
    npm ERR! network connect ETIMEDOUT
    在 ubuntu 14.04 Unity 中清除和关闭 Totem 播放记录
    ubuntu 14.04 上 jvpn 使用说明
    LWP::Protocol::https not installed
    perl 安装模块
    触摸屏工作方式
    如何检测死锁并快速定位死锁位置
    如何用 yum 的一个包替换另一个包
    shell 中 here documemt << 与 <<- 的区别
  • 原文地址:https://www.cnblogs.com/mouseIT/p/5013129.html
Copyright © 2020-2023  润新知