zoukankan      html  css  js  c++  java
  • git常用命令总结(资源来自廖雪峰)

    自己把命令弄出来方便以后看看,,应该有错的emmmm

    原文地址:https://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000/001375840202368c74be33fbd884e71b570f2cc3c0d1dcf000(强烈推荐)

    1.git官方下载 2.https://pan.baidu.com/s/1kU5OCOB#list/path=%2Fpub%2Fgit国内镜(yun)像(pan)下载

    /*******************************全局设置git*********************/
    $ git config --global user.name "Your Name"
    $ git config --global user.email "email@example.com"
    /***************************************************************/


    $ mkdir 文件夹名 :创建文件夹
    $ cd 文件夹名 :转到该目录
    $ pwd :命令用于显示当前目录

    /*******************************开始****************************/
    $ git init :初始化仓库
    $ git add <file> :添加文件到仓库
    $ git commit -m <message> :提交并添加注解 -m是添加注解的意思 可以不添加注解,我也不知道听说要google于是我被墙了

    $ git status :掌握仓库当前的状态
    $ git diff <file> :顾名思义就是查看difference
    $ git log :显示从最近到最远的提交日志 --pretty=oneline(显示一行) --graph(有线条性的图表显示) --abbrev-commit 退出按Q
    $ git reset --hard HEAD^ :回退到上一个版本 后面可跟版本号,不一定要写完能确定就行
    $ git reflog :记录每一次命令


    /*******************************暂存区****************************/
    当你用git add命令后,在工作区的第一次修改被放入暂存区,准备提交,但是,
    在工作区的第二次修改并没有放入暂存区,所以,git commit只负责把暂存区的修改提交了,
    也就是第一次的修改被提交了,第二次的修改不会被提交。
    $ git diff HEAD -- readme.txt命令可以查看工作区和版本库里面最新版本的区别
    /*****************************************************************/

    /*******************************撤销删除**************************/
    场景1:当你改乱了工作区某个文件的内容,想直接丢弃工作区的修改时,用命令git checkout -- file。

    场景2:当你不但改乱了工作区某个文件的内容,还添加到了暂存区时,想丢弃修改,分两步,第一步用命令git reset HEAD <file>,就回到了场景1,第二步按场景1操作。

    场景3:使用 $ git reset --hard commit_id 返回版本库

    删除:$ rm <file>

    /*****************************************************************/


    /*******************************远程****************************/
    远程仓库的默认名称是origin 远程分支的默认名称是master
    $ git remote :查看远程信息 -v :更详细的信息
    $ git remote add origin git@server-name:path/repo-name.git :连接远程库
    $ git push -u origin master :把本地库的所有内容推送到远程库上 第一次推送需要加参数-u以后就正常使用 $ git push origin master
    由于远程库是空的,我们第一次推送master分支时,加上了-u参数,Git不但会把本地的master分支内容推送的远程新的master分支,还会把本地的master分支和远程的master分支关联起来,在以后的推送或者拉取时就可以简化命令。
    $ git clone git@server-name:path/repo-name.git :将远程仓库克隆到本地 默认的git://使用ssh,但也可以使用https等其他协议。 Git支持多种协议,包括https,但通过ssh支持的原生git协议速度最快。
    $ git checkout -b dev origin/dev :在本地创建和远程分支对应的分支
    $ git pull :获取
    $ git push origin <branch-name> :推送
    $ git branch --set-upstream-to=origin/dev dev :建立本地分支和远程分支的关联
    /***************************************************************/

    /***********************多人协作注意事项**********************************/
    多人协作的工作模式通常是这样:

    首先,可以试图用git push origin <branch-name>推送自己的修改;

    如果推送失败,则因为远程分支比你的本地更新,需要先用git pull试图合并;

    如果合并有冲突,则解决冲突,并在本地提交;

    没有冲突或者解决掉冲突后,再用git push origin <branch-name>推送就能成功!

    如果git pull提示no tracking information,则说明本地分支和远程分支的链接关系没有创建,用命令git branch --set-upstream-to <branch-name> origin/<branch-name>。

    这就是多人协作的工作模式,一旦熟悉了,就非常简单。
    /****************************************************************/


    /*******************************分支****************************/
    Git鼓励大量使用分支:

    查看分支:git branch

    创建分支:git branch <name>

    切换分支:git checkout <name>

    创建+切换分支:git checkout -b <name>

    合并某分支到当前分支:git merge <name> 当Git无法自动合并分支时,就必须首先解决冲突。解决冲突后,再提交,合并完成。

    删除分支:git branch -d <name>

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

    /************BUG分支******************/
    $ git stash 将当前工作储藏起来 然后创建分支修复BUG之后再合并分支最后删除分支

    工作现场还在,Git把stash内容存在某个地方了,但是需要恢复一下,有两个办法:

    一是用git stash apply恢复,但是恢复后,stash内容并不删除,你需要用git stash drop来删除;

    另一种方式是用git stash pop,恢复的同时把stash内容也删了:
    /*************************************/

    $ git checkout -b feature-xxxxxx 开发一个新feature,最好新建一个分支;如果要丢弃一个没有被合并过的分支,可以通过git branch -D <name>强行删除。

    /***************************************************************/

    $ cat xxx.txt :查看文本内容
    $ git rebase :rebase操作可以把本地未push的分叉提交历史整理成直线;
    $ git add -f App.class :强制添加文件


    /******************************标签*************************************/
    命令git tag <tagname>用于新建一个标签,默认为HEAD,也可以指定一个commit id;

    命令git tag -a <tagname> -m "blablabla..."可以指定标签信息;

    命令git tag可以查看所有标签。

    推送某个标签到远程,使用命令git push origin <tagname> --tags:推送所有未推送的本地标签
    如果标签已经推送到远程,要删除远程标签就麻烦一点,先从本地删除:$ git tag -d v0.9
    然后,从远程删除。删除命令也是push,但是格式如下:$ git push origin :refs/tags/v0.9

    $ git push origin <tagname>可以推送一个本地标签;

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

    $ git tag -d <tagname>可以删除一个本地标签;

    $ git push origin :refs/tags/<tagname>可以删除一个远程标签。
    /**********************************************************************/

  • 相关阅读:
    安装最新版Mysql(APT方式安装)
    Tengine环境安装
    Docker 教程
    Docker Redis
    Ubuntu
    spring boot actuator 如何显示详细信息
    spring boot 加载日志框架后经常出现 LOG_PATH_IS_UNDEFINED 目录怎么办?【未解决】
    Tomcat 目录结构以及基本配置
    Java Hash集合的equals()与hashCode() 方法
    Java Map 集合实现类
  • 原文地址:https://www.cnblogs.com/easyauthor/p/10436738.html
Copyright © 2011-2022 走看看