美文网首页Java编程思想git使用Git
git使用教程(提交,远程,分支,回退,回滚,克隆,忽略)

git使用教程(提交,远程,分支,回退,回滚,克隆,忽略)

作者: hk_sky | 来源:发表于2017-07-25 00:11 被阅读451次

    1.git的安装

    网站下载git,一路回车安装,安装好后点击鼠标右键会有Git bash here ,点击Git bash here命令行输入git --version会有git的版本信息。

    2.git版本管理的基本操作

    git  init 建立本地git repository仓库并对文件进行追踪用

    git  status  查看状态

    git  add . / git  add -A  这两个命令是全部添加到暂存区,也可以添加指定文件到暂存区 git add index.html

    git  commit  -m"对这次提交的描述"   ,这样就将修改提交到本地的 repository仓库中, 描述就是为了方便后期再次查看时好理解

    git remote add origin  https://github.com/***/ch1701.git    把本地的仓库和gitHub仓库想关联

    git   pull  origin  master        从gitHub仓库的master分支拉取代码到本地

    git  pull origin master      --allow-unrelated-histories         //强制拉取线上到本地合并()

    git  push  -u  origin  master     提交到gitHub仓库的master分支,第一次的时候需要 -u 参数,后面再提交就不需要 -u 了

    git  push  -u  origin  master  -f      //强制把本地推到线上覆盖(当回退线上仓库时会用到)

    git  cat  help.txt         查看内容

    git  rm   help.txt         删除help.txt文件

    reset    清屏,实质是清除屏幕记录; ctrl  +  l  也是清屏,实质是把记录上移,以确保当前显示框干净

    git  diff   help.text  查看当前版本与上个版本的不同

    git  config  user.name          查看当前用户名

    git   config   user.email        查看当前邮箱

    至于上文中的gitHub仓库的来源,直接去github网站上注册一个账号,点右上角加号new repository,然后取个名字回车就好了

    3.分支操作

    创建本地分支:  git  branch  aaa    ,这里aaa为新建的分支名字

    创建分支并切换到新分支:  git  branch   -b   aaa    ,这里aaa为新建的分支名字

    查看本地分支:git  branch          不给参数默认本地分支

    合并分支:   git   merge   aaa      (想把aaa分支合并到master分支,要先切换到master分支再执行合并操作)

    放弃分支合并:   git   merge   –abord    aaa

    查看远程分支:git  branch  -r      ,r代表remote即远程分支

    查看所有分支:git  branch  -a      ,a代表all即所有分支

    切换分支:git  checkout   aaa   ,从master分支切换到aaa分支      (切换分支前确保当前分支的修改都已提交)

    创建远程分支 / 推送新分支放到远程:git  push  origin  aaa     ,会自动 在远程添加aaa分支

    删除本地分支:git  branch  -d   aaa    删除aaa分支前确保切换到非aaa分支上再执行此命令

    删除远程分支:git  push  origin  :aaa  (origin 后面有空格)

    删除远程分支:  $ git  push  origin  --delete  aaa

    当页面内容很多时,可以用按 f 键下一页,按 b 键上一页,:wq是退出当前

    4.查看提交记录操作

    git  log    查看详细提交日志,按f键想下翻页,按b键向上翻页,按q退出

    git  log  --oneline     显示只有一行的简单提交日志

    git  log  --oneline   -6     显示最近的6条提交日志

    git  log  --oneline  --author="hu"    显示指定作者的提交日志

    git  log  --oneline  --grep="index.html"    显示index.html的提交日志

    git  log  --oneline  --before='2017-07-20'    显示2017-07-20日期之前(包含这一天)的提交日志

    git  log  --oneline  --before='3 days'    显示最近3天的提交日志

    git  log  --oneline  --before='1 weeks'    显示最近1周的提交日志

    git  log  --oneline  --graph     显示带图形效果的提交日志

    当回滚、回退后会看不到当前版本后的提交记录,这时可以执行 git  reflog 这个命令会记录每一次操作记录   

    5.checkout操作 (回退版本方法一)

    对于在工作区(未加入暂存区)的修改,想要放弃修改使用这个方法:

    git checkout .  撤销对所有已修改但未放入暂存区的文件的修改,但不包括新增的文件

    git  checkout  -- .    同上

    git checkout  [filename]    撤销对指定文件的修改,[filename]为文件名

    git  checkout  --  [filename]     同上

    对于已经git  add 加入暂存区的文件想要放弃修改的话需要这样操作:

        git  reset  HEAD  index.html    可以把暂存区的修改撤销掉,重新放回工作区,然后就回到上面的那个方法了

    对于已经commit 的文件,如果想要回退就要使用以下这个方法:

        先git  log  --oneline  查看提交信息

    git  log --oneline

        git  checkout  a9db330    会回退到测试2的提交,并创建一个临时分支放测试2节点的代码,此时输入git  branch  可以看到分支在临时分支上,本地代码也变回测试2的。如果又想回到最近的那次提交只需要切换回主分支master就好了,执行git  checkout  master ,本地代码会变回最新的提交版本测试4的状态,同时临时分支会消失。如果想保存测试2那个分支,那就在切换master分之前新建一个分支执行git  checkout  -b   aaa,再执行git  branch会发现临时分支也不见了,只有master和aaa,其中master是最新测试的状态,aaa就是测试2的状态。如下图:

    只查看会退的版本,临时分支不保存 查看回退的版本,并新建分支保存临时分支

    注意:  

    这里需要注意一点,当回退到测试版本2后,测试版本2后的提交记录都会不见的,我们就不能通过git  log找到测试版本4的commit_id了,我们可以用 git  reflog查看每一次操作的记录找到测试版本4的commit_id 。想要回到最近的一次提交测试4只需要切换到master分支就好了,如下图。


    回退后的git  log  --oneline 回退后git   reflog

    6.reset操作 (回退版本方法二)

    先git  log  --oneline  查看提交信息


    git  log   --oneline

    执行git  reset  --hard  HEAD^    会回退到最近的提交版本的前一个版本(3065b27)

    执行git  reset  --hard  HEAD^    会回退到最近的提交版本的前两个版本(3065b27)

    执行git  reset  --hard  HEAD~20   会回退到最近的提交版本的前20个版本

    也可以根据提交的commit_id来回退:

    执行 git   reset  --hard  a9db330    ,  a9db330是通过git  log查看到的额测试2提交的commit_id

    git  reset  --hard  a9db330

    这里需要注意的是:执行此方法后不会像checkout那样新建一个临时分支,而是直接把本地的代码会退到指定的版本,如果回退完后又想返回最新版本,执行 git  reset  --hard  commit_id4, 这里的commit_id4是最新提交版本的id, 可以在回退之前截个图保存下来,或者通过 git  reflog 查看。当回退到测试版本2后,测试版本2后的提交记录都会不见的,我们就不能通过git  log找到测试版本4的commit_id了,这时候又想回到测试提交4的版本怎么办,我们就可以用 git  reflog查看每一次操作的记录找到测试版本4的commit_id4然后再 git  reset  --hard  commit_id4 就又回到最新的提交版本

    回退版本后又返回最新的版本

    7.remote操作

    git  remote  查看远程分支(没有改动的话默认是master)

    git  remote  -v    查看git远程仓库地址

    修改远程仓库地址:

      1.修改命令

          git  remote   set-url    origin    [url]

      2.先删后加

          git remote rm origin

          git remote add origin [url]

    git  remote  -v

    8.clone 克隆

    把git仓库的代码克隆到本地,只需要执行    

    git  clone   https://github.com/×××.git      这样会在当前目录下建立一个跟git仓库同名的文件夹,文件夹里是代码

    git  clone  https://github.com/×××.git    test    ,这样会在当前目录下新建一个test文件夹用来放git远程代码  

    9.gitignore 忽略

    在我们使用github提交本地代码时,有些库文件和日志文件是不必要提交的,这个时候我们就会用到.gitignore文件了。

    首先,.gitignore文件应该是创建在你的项目的根目录下面的,执行命令创建 .gitignore文件,也可以直接在文件管理中去创建

    vim .gitignore

    或者    touch  .gitignore

    添加忽略的目录和文件:

    node_modules/                                       //该文件下所有文件

    dist/

    .project                                                   //所有以.project结尾的文件

    *.log                                                        //所有以.project结尾的文件

    !aaa.log                                                //不过滤aaa.log文件,该文件会被提交到线上仓库

    platforms/

    plugins/

    这些文件都是库文件以及自动生成的模块,都是不必要提交的。

    对于已经提交,现在又不想提交的文件(不想让它出现在远程版本库里),应该这样操作:

         去项目根目录下创建.gitignore文件,并且添加需要忽略提交的文件(方法同上),然后执行

    git  rm  -r  --cached  node_modules                    (node_modules为要删除的文件名)

          然后再 push 到远程,这时去github的库里去就会发现刚刚删除的东西不见了

    10.git bash here窗口与cmd窗口的基本命令(windows)

    基本命令


    git bash基本命令

    以上都是我平时遇到的,我总结了一下写了出来,方便大家查看。这只是一部分,还有很多等我想起来了再往上添加。

    文中如果有写错或不对的地方恳请您留言指出批评,如果此文对你有帮助,请加关注收藏点赞。

    相关文章

      网友评论

      • 2c4b9a3449a9:创建分支并切换到新分支应该是这个: git checkout -b aaa
        相当于:git branch aaa
        git checkout aaa
        hk_sky:对的,就还是等同于这个
      • Hoistthecolors:这个必须赞。我git用的很烂。这个刚刚好,下次直接来着找指令。

      本文标题:git使用教程(提交,远程,分支,回退,回滚,克隆,忽略)

      本文链接:https://www.haomeiwen.com/subject/hziekxtx.html