• Git 常用命令


    注:命令中的字符都为半角否则命令会报错,命令中自定义的文件名,标签名,备注信息最好都是英文,否则容易出现某些问题

    1.配置用户名和邮箱

    $ git config --global user.name "xxxx"

    $ git confing --global user.email "xxxx@example.com"   --globle参数表示所有仓库都将使用这个配置

    2.创建仓库 (repository)

    $ mkdir filename   创建一个空目录

    $ cd filename         跳转到filename所在目录

    $ pwd                     显示当前目录

    $ git init                  把新建目录变成git可以管理的仓库 此时目录下多一个.git的目录

    $ ls ($ ls -ah)          查看当前目录下的文件列表  (查看当前目录下的的文件列表,包括隐藏的)

    3.添加文件到仓库 需要 add  commit 两步

    $ git add .  把所有文件从工作区添加到暂存区

    $ git add filename1 filename2 filename3     把文件从工作区添加到暂存区(stage)

    $ git commit -m "xxxx"                                 把暂存区的修改文件提交到分支上   -m后为本次提交的说明 commit可以一次性提交多个文件

    4.查看状态和修改内容

    $ git status                 查看仓库当前状态,可以知道有文件被修改过

    $ git diff filename       查看文件修改内容

    $ cat filename            查看文件内容

    5.版本回退

    $ git log ($ git log --pretty=oneline)      显示从最近到最远的提交日志 如果出现end情况可以按q退出

    $ git log -1                                            显示最后一次提交信息

    $ git reset --hard HEAD^                      (^为半角状态)  把文件回退到上一个版本 ^的个数为回退版本的个数 (当回退版本比较多时,可采取$ git --hard HEAD~1方式回退,~的数字为回退的版本个数)

    $ git reset --hard commit_id                当回退完成以后,若你想回到原先的回退前的某个版本,只要在--hard后加上版本号(版本号可以用命令$ git reflog 查看)

    $ git reflog                                           可以查看提交历史,此方法可以查看每次提交的版本号,用于回到未来的某个版本

    $ git diff HEAD -- filename                  可以查看工作区和最新版本的区别

    6.撤销文件的修改

    $ git checkout -- filename                    场景1     撤销工作区文件的的修改 ,--不能省略,否则就是切换分支的命令了

                                                                场景2     当手动误删工作区文件时,因为版本库里还有,可以用此命令将误删文件恢复到最新版

    $ git reset HEAD filename                  可以把暂存区文件的修改撤销(unstage),回退到工作区

    7.删除已提交文件操作  先用git rm 删除然后 git commit

    $ git  rm filename          删除文件

    删除已经commit的文件:用git log 查看commit的记录【git  log -n 1】===》git reset --hard commit_id

     8.与远程库连接

    $ git remote add origin git@github.com:xxxx/xxx.git     

    $ git remote rm origin             删除已关联的远程库

    $ git push -u origin master    将本地库推送远程库,第一次连接时需要加上-u 参数,此后可省略即$ git push origin master。此外Git使用SSH连接时,第一次连接,Git会输入一个警告,输入yes即可。

    9.从远程库克隆

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

    10.创建并合并分支

    $ git checkout -b dev      创建并切换分支  相当于 $ git branch dev 和 $ git checkout dev

    $ git branch                    查看所有分支   当前分支前会有*号

    $ git checkout master    切换回master分支

    $ git merge dev             用户合并指定分支dev到当前分支

    $ git merge --no-ff -m "xxxx"  dev    加上--no-ff参数就可以用普通模式合并,合并后的历史有分支,能看出来曾经做过合并,而不加此参数 则采用fast forward模式(此模式下,删除分支后,会丢掉分支信息)合并就看不出来曾经做过合并,

    $ git branch -d dev                          删除dev分支,删除时不能将删除分支作为当前分支

    $ git branch -D dev                         强行删除已commit的分支

    11.解决冲突

    $ git log --graph 查看分支合并图【$ git log -graph --pretty =oneline --abbrev-commit】

    12.暂存操作

    $ git  stash        把当前工作现场存储起来

    $ git stash list    查看存储列表

    $ git stash pop  将存储的分支应用于当前分支  git stash apply 同样可恢复但stash内容不删除 ,还需要用git stash drop来删除,可以多次stash,恢复时可以在 pop或 apply后加 stash@{x}来指定恢复到哪一个存储分支。 stash@{x}可以由git stash list查看

    13.多人协作时常用操作

    $ git checkout -b dev origin/dev                                                   在本地创建和远程分支对应的分支

    ¥git branch --set-upstream branch-name origin/branch-name   建立本地分支和远程分支的关联

    $ git push  origin branch-name                                                     推送自己的修改

    $ git pull                                                                                        当远程分支比你的本地更新,则用上条进行推送会失败,此时需要git pull 试图合并冲突,再进行提交,若git pull 时提示"no trancing information" 说明本地分支和远程分支的连接关系没有创建 用命令 git branch -- set-upstream bransh-name origin/branch-name

    $ git remote -v                                                                              查看远程库信息

    14.标签操作 如下xxx是自定义tagname

    $ git tag xxx                       给当前分支打上标签 git tag -a xxx -m "xxx" 可以指定标签信息,-a指定标签名,-m指定说明文字  git tag -s xxx -m "xxx" 可以用PGP签名标签,通过-s用私钥签名一个标签 

    $ git tag                            查看所有标签

    $ git show xxx                  可以查看对应标签的说明和内容 

    $ git push origin xxx        推送一个本地标签

    $ git push origin --tags    可以推送全部未推送的本地标签

    $ git tag -d xxx                 删除一个本地标签

    $ git push origin :refs/tags/xxx  删除一个远程标签

    15 .自定义git

    $ git config --global color.ui true

    16. 配置别名

    $ git config --global alias.xxx  'yyy' 把yyy别名成xxx  $ git config --global alias.ci commit    $ git config --global alias.unstage 'reset HEAD'  所以当你提交时可以写成  $ git ci -m "xxxx"   撤销暂存时  $ git unstage filename  这些设置都在.git /config(无--global)文件或者用户主目录下的.gitconfig(有--global)中,如果不需要可以删除

    17.其他操作

    $ cd xxx 切换目录

    $ clear 清屏

    $ cd ..    返回上一个目录

     本文参照 廖雪峰的官方网站git学习总结   https://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000 

    18.补充

    查看远程分支:git branch -r

    拉取远程分支到本地:  方法一:git checkout -b 本地分支名  origin/远程分支名    【此方法会将本地分支与远程分支建立映射关系,并自动切换到新建的本地分支】

                                   方法二:git fetch origin 远程分支名:本地分支名      【此方法不会将本地分支与远程分支建立映射关系,且不会自动切换到新建的本地分支】

    git commit --amend 将修改合到上一个commit中

    git remote set-url origin 远程项目地址  修改项目远程地址

  • 相关阅读:
    c++ stringstream
    c语言中字符串数组初始化的一点总结&& c++访问控制的三种方式
    Leetcode 2. Add Two Numbers(medium)
    面试题---反转一个字符串
    编程题---在数组中取一个位置,让这个位置之前的数的和与之后的和的差绝对值最小
    美团面试准备
    Leetcode 101. Symmetric Tree(easy)
    Leetcode 665. Non-decreasing Array(Easy)
    617. Merge Two Binary Trees(Easy)
    423. Reconstruct Original Digits from English(Medium)
  • 原文地址:https://www.cnblogs.com/zml-mary/p/8393757.html
Copyright © 2020-2023  润新知