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

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        查看当前邮箱

npm   cache   clean   --force       清除缓存

git  rm  -r  --cached .     清除git缓存

git  config   --global   core.ignorecase   false       设置git区分大小写

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

3.分支操作

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

创建分支并切换到新分支:  git  checkout   -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的库里去就会发现刚刚删除的东西不见了

如果gitignore不生效,执行以下代码清理git缓存

git rm -r --cached .

git add .

git commit -m 'update .gitignore'


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

基本命令
git bash基本命令

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

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,324评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,303评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,192评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,555评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,569评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,566评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,927评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,583评论 0 257
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,827评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,590评论 2 320
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,669评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,365评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,941评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,928评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,159评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,880评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,399评论 2 342

推荐阅读更多精彩内容

  • git作为时下最流行的代码管理工具,Git权威指南总结了十条喜欢Git的理由: 异地协同工作; 现场版本控制; 重...
    古斟布衣阅读 1,817评论 0 12
  • 在雨中拾一首诗,在诗中流泪 在诗中,走过结满梅子的青涩雨巷 偶尔,有几句会非常阳光 阳光得有点象雨过天晴。 但雨天...
    金永辉煌阅读 920评论 4 16
  • 440王金伟写作思路 “仔细看了三遍之后,当我想清楚我的目标是什么,我有可能给予什么之后,我选择进来,一是我对您关...
    木头的随笔阅读 211评论 0 0
  • 噩运会来,那么噩运会去,但在噩运中丧失了品格,事事无行,卒为亲师俦友所不齿,待到噩运过后,又能如何呢,不甘寂寞,找...
    obstinate_lzy阅读 269评论 0 0