• Git常用命令举例


    第一步,需要新建一个文件夹,在文件夹里新建一个文件(我是用 Linux 命令新建的,Windows用户可以自己手动新建)

    • mkdir test    (创建文件夹test)
    • cd test    (切换到test目录)
    • touch a.md    (新建a.md文件)

    注意:在进行任何 Git 操作之前,都要先切换到 Git 仓库目录,也就是要先切换到项目的文件夹目录下。

    这个时候随便操作一个命令,比如 git status ,可以看到如下提示(不要纠结颜色,配置与主题不一样而已):



    意思是当前目录还不是一个 Git 仓库。

    1. git init

    这个时候就要用到第一个命令了,代表初始化 git 仓库,输入 git init 之后会提示:


    可以看到初始化成功了,至此 test 目录已经是一个 git 仓库了。

    2. git status

    接下来输入 git status 命令,会有如下提示:



    默认就直接在 master 分支,关于分支的概念后面会提,这时最主要的是提示 a.md 文件 Untracked files ,就是说 a.md 文件没有被跟踪,还没有提交到 git 仓库里,提示可以使用 git add <file> 去操作想要提交的文件。

    git status 这个命令顾名思义就是查看状态,这是一个使用最频繁的命令,建议大家可以经常输入这个命令,来查看当前 git 仓库的一些状态。

    3. git add

    上面提示 a.md 文件还没有提交到 git 仓库里,这个时候我们可以随便编辑下 a.md 文件,

    然后输入 git add a.md 

    然后再输入 git status 

    此时提示以下文件 Changes to be committed , 意思就是 a.md 文件等待被提交,当然你可以使用 git rm --cached 这个命令去移除这个缓存。

    4. git commit

    接着我们输入 git commit -m 'first commit' ,这个命令什么意思呢? commit 是提交的意思,-m 代表是提交信息,执行了以上命令代表我们已经正式进行了第一次提交。

    这个时候再输入 git status ,会提示 nothing to commit。

    5. git log

    此时输入 git log 命令,会显示如下内容:


    git log 命令可以查看所有产生的 commit 记录,从上图中可以看到已经产生了一条 commit 记录,而提交时候的附带信息叫 'first commit' 。

    6. git add & git commit

    看到这里估计很多人会有疑问,我想要提交直接进行 commit 不就行了么,为什么先要再 add 一次呢?首先 git add 是先把改动添加到一个「暂存区」,你可以理解成是一个缓存区域,临时保存你的改动,而 git commit 才是最后真正的提交。这样做的好处就是防止误提交,当然也可以将这两步合并成一步,后面再介绍,建议新手先按部就班的一步步来。

    7. git branch

    branch 即分支的意思,分支的概念很重要,尤其是团队协作的时候,假设两个人都在做同一个项目,这个时候分支就是保证两人协同合作的最大利器。举个例子,A, B俩人在做同一个项目,但是不同模块,这个时候A新建了一个分支叫a, B新建了一个分支叫b,这样A、B对代码做的所有改动都在各自的分支下,互不影响,最终,各自的模块都完成后,可以把分支再合并起来。

    执行 git init 初始化git仓库之后会默认生成一个主分支 master ,也是你所在的默认分支,也基本是实际开发正式环境下的分支,一般情况下 master 分支不会轻易直接在上面操作的,可以输入 git branch 查看下当前分支情况:

     

    如果想在此基础上新建一个分支,只要执行 git branch a 就新建了一个名字叫 a 的分支,这时候分支 a 跟分支 master 是一模一样的内容,再输入 git branch 查看的当前分支情况:

    从上图可以看到 master 分支前有个 * 号,即虽然新建了一个 a 的分支,但是当前所在的分支还是在 master 上,如果想在 a 分支上进行开发,首先要切换到 a 分支上,执行 git checkout a 命令,然后再输入 git branch 查看下分支情况

    可以看到当前所在分支已经是a了,这个时候 A 同学就可以尽情的在新建的a分支去进行代码改动了。

    可能有些同学会觉得先新建再切换会有些麻烦,下面就提供给大家一个简便的命令:

    git checkout -b a

    这个命令的意思就是新建一个a分支,并且自动切换到a分支。

    查看远程分支 git branch –r

    注:如果在master上新建的分支,分支内容和master一样。如果是在develop上面建的分支,则和develop内容一样

    8. git merge

    A同学在a分支下代码写的不亦乐乎,终于他的模块完成了,并且测试也都通过了,准备要上线,这个时候就需要把他的代码合并到主分支master上,然后发布。git merge 就是合并分支用到的命令,针对上述情况,需要完成两个步骤,第一步是切换到 master 分支,如果已经在了就不用切换了,第二步执行 git merge a ,意思是把a分支的代码合并到master分支,不出意外,这个时候a分支的代码就顺利合并到 master 分支上了。为什么说不出意外呢?因为这个时候可能会有冲突而造成合并失败,留个包袱,后面进阶的时候再讲。

    9. git branch -d

    既然有新建分支,那么一定会有删除分支,假如这个分支新建错了,或者a分支的代码已经顺利合并到了 master 分支上,那么a分支没用了,需要删除,这个时候执行 git branch -d a 就可以把a分支删除了。

    10. git branch -D

    有些时候可能会删除失败,比如如果a分支的代码还没有合并到master,执行 git branch -d a 是删除不了的,会提示a分支还有未合并的代码,但是如果一定要删除,那就执行 git branch -D a 就可以强制删除a分支。

    11. git tag 

    客户端开发的时候经常有版本的概念,比如v1.0、v1.1等,不同的版本对应不同的代码,所以一般要给代码加上标签,这样假设v1.1版本出了一个新bug,但是又不清楚v1.0是不是有这个bug,有了标签就可以顺利切换到v1.0的代码,重新打包测试。

    打tag方法

    在commit提交之后打tag

      

    git tag v1.0
    

    查看历史 tag 记录

    git tag  

    从上图可以看出新建了两个标签 v1.0、v1.1。

    切换到某个tag,怎么办?也很简单。

    git checkout v1.0

    push时提交tag

    git push --tags
    

    此时已经把代码提交到了tag1。

    如果想push到主分支 ,直接再push一次即可,后面不需要加tags

    git push
    

      

    12.reset

    退回历史记录

    在实际操作中如有意外情况难免需要退回到以前的历史

    我们就可以使用git reset

    1. 首先查看log记录,查看提交记录

    git log
    

      

    2. 复制要退回的历史记录哈希值  ,并进行退回(哈希值复制一部分即可)

    git reset 51f8b159
    

      

    3.  如果有文件没有提交的话是不能退回的,需要提交后退回,或者也可以强制退回

    git reset --hard  51f8b159
    

      

    如果实在不放心,也可以选择退回到最近一次,

    git reset --hard HEAD^
    

      

    此时查看状态  git status   和代码,就已经退回到了以前的代码中

  • 相关阅读:
    WCF技术剖析之二十六:如何导出WCF服务的元数据(Metadata)[实现篇]
    事件(Event),绝大多数内存泄漏(Memory Leak)的元凶[上篇]
    谈谈关于MVP模式中VP交互问题
    如何通过VPC在本机搭建局域网
    谈谈分布式事务之三: System.Transactions事务详解[下篇]
    WCF版的PetShop之二:模块中的层次划分[提供源代码下载]
    实践重于理论——创建一个监控程序探测WCF的并发处理机制
    WCF技术剖析之二十五: 元数据(Metadata)架构体系全景展现[WS标准篇]
    WCF技术剖析之三十一: WCF事务编程[中篇]
    微软将结束对Windows 2000、XP和Vista部份版本的技术支持
  • 原文地址:https://www.cnblogs.com/lovecode3000/p/12254851.html
Copyright © 2020-2023  润新知