Git常用命令

 以下是学习git时常用的命令,大致总结了以下,用git做版本控制所用的命令挺多的,但常用的也在大脑承受的范围之中,把自己总结的东西给大家分享一下。

  1.创建Git库:git的初始化用cd切换到要换的目录用“git-init”初始化(-代表空格)

  2.git-add向Git库中添加文件,在调用了git-add才可以做commit操作

  3.git-rm删除库中的文件

  4.git-ls-files来查看当前的git库中有那些文件

  5.git-status查看版本库状态(建议每次commit前要通过该命令确认库状态。以免误操作.)

  最常见的误操作:修改了一个文件, 没有调用git-add通知git库该文件已经发生了变化就直接调用commit操作,从而导致该文件并没有真正的提交。如果这时如果开发者以为已经提交了该文件,就继续修改甚至删除这个文件,那么修改的内容就没有通过版本管理起来。如果每次在提交前,使用git-status查看一下,就可以发现这种错误。因此,如果调用了git-status命令,一定要格外注意那些提示为   “Changed but not updated:”的文件。这些文件都是与上次commit相比发生了变化,但是却没有通过git-add标识的文件。

  向版本库提交变化git-commit.直接调用git-commit会提示填写注释。 

    1.可以通过git-commit   -m"注释",必须得有注释,不然不能提交.

    2.git-commit还有一个–a的参数,可以将那些没有通过git-add标识的变化一并强行提交,但是不建议使用这种方式。

    3.每一次提交,git就会为全局代码建立一个唯一的commit标识代码,用户可以通过git-revert命令恢复到任意一次提交时的代码。

    4.可以 用git-diff来查看具体那些文件发生了变化

    5.在提交后还可以通过git-log,命令来查看提交记录

  分支管理git-branch:当第一次执行git-init时,系统就会创建一个名为”master”的分支。而其它分支则通过手工创建。

    1.创建一个属于自己的个人工作分支,以避免对主分支 master 造成太多的干扰,也方便与他人交流协作。

    2.当进行高风险的工作时,创建一个试验性的分支,扔掉一个烂摊子总比收拾一个烂摊子好得多。

    3.git-branch  查看已存在的分支

    4.git-branch  分支名:创建分支

      git-branch   分支名称

      git-checkout -b分支名

  使用第一种方法,虽然创建了分支,但是不会将当前工作分支切换到新创建的分支上,因此,还需要命令”git-checkout 分支名” 来切换, 而第二种方法不但创建了分支,还将当前工作分支切换到了该分支上。

  1.删除分支git-branch -D

    git-branch –D 分支名可以删除分支,但是需要小心,删除后,发生在该分支的所有变化都无法恢复。

  2.切换分支git-checkout 分支名

    如果分支已经存在, 可以通过 git-checkout 分支名 来切换工作分支到该分支名

  3.查看历史分支 git-show-branch

 1 * [dev1] d2
 2 
 3 ! [master] m2
 4 
 5 --
 6 
 7 * [dev1] d2
 8 
 9 * [dev1^] d1
10 
11 * [dev1~2] d1
12 
13 *+ [master] m2
  1. 在上述例子中, “--”之上的两行表示有两个分支dev1和master,且dev分支上最后一次提交的日志是“d2”,master分支上最后一次提交的日志是”m2”。     “--”之下的几行表示了分支演化的历史,其中 dev1表示发生在dev分支上的最后一次提交,dev^表示发生在dev分支上的倒数第二次提交。dev1~2表示发生在dev分支上的倒数第三次提交。
  2. 合并分支  - git-merge git-merge的用法为:git-merge “some memo”  合并的目标分支 合并的来源分支。如: 如果合并有冲突,git会由提示,当前,git-merge已经很少用了,用git-pull来替代了。 用法为:git-pull 合并的目标分支 合并的来源分支。 如git-pull . dev1
  1. 从远程获取一个git库git-clone 通过git-clone获取的远端git库,只包含了远端git库的当前工作分支。如果想获取其它分支信息,需要使用”git-branch–r” 来查看, 如果需要将远程的其它分支代码也获取过来,可以使用命令” git checkout -b本地分支名远程分支名”,其中,远程分支名为git-branch –r所列出的分支名, 一般是诸如“origin/分支名”的样子。如果本地分支名已经存在,则不需要“-b”参数。
  2. 从远程获取一个git分支 –git-pull git-pull username@ipaddr: 远端repository名远端分支名:本地分支名。这条命令将从远端git库的远端分支名获取到本地git库的一个本地分支中。其中,如果不写本地分支名,则默认pull到本地当前分支。需要注意的是,git-pull也可以用来合并分支。 和git-merge的作用相同。因此,如果你的本地分支已经有内容,则git-pull会合并这些文件,如果有冲突会报警。
  3. 将本地分支内容提交到远端分支 –git-push git-push和git-pull正好想反,是将本地某个分支的内容提交到远端某个分支上。git-push username@ipaddr: 远端repository名 本地分支名:远端分支名。这条命令将本地git库的一个本地分支push到远端git库的远端分支名中。
  4. 库的逆转与恢复 –git-reset 库的逆转与恢复除了用来进行一些废弃的研发代码的重置外,还有一个重要的作用。比如我们从远程clone了一个代码库,在本地开发后,准备提交回远程。但是本地代码库在开发时,有功能性的commit,也有出于备份目的的commit等等。总之,commit的日志中有大量无用log,我们并不想把这些                            log在提交回远程时也提交到库中。 因此,就要用到git-reset。Git-reset的概念比较复杂。它的命令形式:git-reset [--mixed    | --soft | --hard] [<commit-ish>] 命令的选项: --mixed 这个是默认的选项。 如git-reset [--mixed] dev1^(dev1^的定义可以参见2.6.5)。它的作用仅是重置分支状态到dev1^, 但是却不改变任何工作文件的内容。即,从dev1^到dev1的所有文件变化都保留了,但是dev1^到dev1之间的所有commit日志都被清除了,而且,发生变化的文件内容也没有通过git-add标识,如果您要重新commit,还需要对变化的文件做一次git-add。这样,commit后,就得到了一份非常干净的提交记录。                           --soft 相当于做了git-reset –mixed,后,又对变化的文件做了git-add。如果用了该选项,就可以直接commit了。 --hard 这个命令就会导致所有信息的回退, 包括文件内容。 一般只有在重置废弃代码时,才用它。执行后,文件内容也无法恢复回来了。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Git版本控制Windows版快速上手

      说到版本控制,之前用过VSS,SVN,Git接触不久,感觉用着还行。写篇博文给大家分享一下使用Git的小经验,让大家对Git快速上手。   说白了Git就是...

    lizelu
  • Git知识总览(一) 从 git clone 和 git status 谈起

    本篇博客是整理git相关知识的第一篇,因为之前一直是用SourceTree对Git的命令行操作用的不是特别熟,于是乎过了一遍ProGit(链接:https://...

    lizelu
  • Git知识总览(二) git常用命令概览

    上篇博客我们从 git clone 和 git status 两个命令开始,引出了一系列的git操作命令, 请参见:《Git知识总览(一) 从 git clon...

    lizelu
  • Git快速入门

    git作为现在最为流行的版本管理系统,大部分公司都使用git进行版本控制,并且最大程序员交友网站github也是在git的基础上建立的。 很多人认为git难,在...

    腾讯工蜂
  • Git 基本使用介绍

    .gitignore 文件夹用于在上传git的时候,不需要提交系统IDE配置文件等到git,就需要把这些文件放到这个文件夹下面,git就会忽略这些文件,不会提交...

    万能青年
  • Git 常用命令清单,掌握这些,轻松驾驭版本管理

    注意: 1、HEAD 指向的版本是当前版本,^ 表示上一个版本,~N 表示上N个版本,<commit id>可简写 2、git log 可以查看<commit ...

    前端博客 : alili.tech
  • linux上搭建私有Git服务器的详细教程

    远程仓库实际上和本地仓库没啥不同,纯粹为了7×24小时开机并交换大家的修改。GitHub就是一个免费托管开源代码的远程仓库。但是对于某些视源代码如生命的商业公司...

    砸漏
  • Git全方位指南,即用即查就可

    Lemon黄
  • git

    GIT是一个分布式版本管理系统,速度快,适合大规模,跨地区多人协同开。SVN是一个集中式版本管理系统。

    yuezhimi
  • 你不得不知道的Git常用命令

    给指定的id加标签,ld号可以通过git log --pretty=oneline查看

    大猫的Java笔记

扫码关注云+社区

领取腾讯云代金券