Git 2.常用命令

1.Git环境配置

设置用户信息

  • 注意:这个设置的用户信息和邮箱和gitee没有关系
 git config --global user.email “邮箱”
 git config --global user.name “名字”

查看配置信息

git config --list   
git config user.name

2.获取Git仓库

一.在本地初始化一个Git仓库

  • 1.创建一个空目录作为我们的本地仓库
  • 2.进入目录中,点击右键打开Git bash 窗口
  • 3.执行命令 git init

二.从远程仓库克隆

  • git clone 仓库Https的路径

3. 工作目录、暂存区以及版本库的概念与关系

一.版本库

  • 在我们创建好的本地仓库里 .git隐藏文件夹就是版本库,版本库存储了很多配置信息,日志文件和文件版本信息等

二.工作目录(工作区)

  • 包含.git文件夹的目录就是工作区目录,主要用于存放开发的代码

三.暂存区

  • .git文件夹中有很多文件,其中有一个index文件就是暂存区,也可以叫做stage,暂存区是一个临时保存修改文件的地方

四.关系


4.Git目录下文件的二种状态以及查看文件状态命令

一.untracked 未跟踪(未被纳入版本控制)

二.tracked 已跟踪(被纳入版本控制)

  • Unmodified 未被修改状态
  • Modified 已修改状态
  • Staged 已暂存状态

这些文件状态会随着我们执行Git命令发生变化

三.查看文件状态

     git status  
  • On branch master 表示当前处于master分支
  • Your branch is up to date with 'origin/master'. 表示当前分支处于最新状态
  • modified: README.md 表示当前 README.md 这个文件处于已修改状态
  • Untracked files (use "git add <file>..." to include in what will be committed) heool.txt 表示当前heool.txt文件处于为跟踪状态文件(新添加文件的状态)
 git  status -s  使输出更加简介
  • M 代表已修改状态
  • ??表示为跟踪状态

5.对本地仓库的操作

一. 添加文件
1.将未跟踪的文件加入暂存区

  git  add  文件名称

2.将暂存区的文件提交到本地仓库

 git  commit -m "日志叙述"

git  commit "不加-m,进入文本编辑器中   i = 进行编辑  esc = 退出编辑  :wq = 保存并退出  
:q 不保存直接退出"   这里的文档操作,与Linux的一样

二. 将新创建的文件加入暂存区查看文件状态

 git add   文件名
 git status  -s
  • A 表示文件加入暂存区

三.将已跟踪的文件变为未跟踪

git  reset  文件名

四.删除文件

  • 1.通过命令来删除
git  rm  文件名

注意 : 这个命令只是删除的工作区的文件,本地仓库还有对应的文件

删除本地仓库对应的文件(只需要提交命令到本地仓库)

git  commit  -m  "叙述"
  • 2.如果你直接删除对应的文件夹
    直接去删除文件夹(git默认没有将删除操作加入到暂存区)
  • deleted: txt.txt 文件代表删除没有加入缓存区
  • D txt.txt 为简写

这时候进行commit提交无法操作

解决方法

  • 1.使用git add 删除文件夹名 加到暂存区
  • 2.执行git commit -m "日志叙述"

五.将文件添加至忽略列表

  • 应用场景: 一般我们总会有文件无需纳入Git管理,也不希望它们出现在未跟踪文件列表,通常都是自动生成的文件,java为例 : 编译文件 , .idea , target ,在这种情况下我们可以在工作目录创建一个名为 .gitignore的文件(文件名称固定) ,列出要忽略的文件模式

  • 1.创建.gitignore文件

    • 直接在windows是不能创建文件的

通过命令来创建忽略文件

      touch .gitignore
  • 2.编写忽略后缀
*.class
    1. 效果查看
 git  status

只有我们创建的忽略文件没有加入暂存区,class文件已经忽略

六.查看日志记录

  git  log 
  • 如果你操作比较多,日志一页存放不下,使用Enter 继续查看其他日志,q退出日志

6.对远程仓库的命令操作

一.查看远程仓库

  • 1.简略查看
  • 如果想查看已经配置远程仓库服务器,可以运行 git remote
    它会列出指定的每一个远程服务器的简写

    如果已经克隆了远程仓库,那么至少应该能看到origin,这是Git克隆的仓库服务器默认名字
  • 2.列出详细信息,在每一个名字后面列出其远程url
  git  remote  -v
  • 3.显示远程仓库与本地仓库的关联信息
 git remote  show  origin
  • remote origin => 远程仓库的名称
  • HEAD branch :master=>当前分支为master
  • Remote branch: master tracked =>表示当前master与远程分支master有追踪关系

二.添加远程仓库

  • 1.使用命令
 git  remote add  origin   "创建的远程仓库HTTPS地址"

三.从远程仓库克隆

  • 1.克隆远程仓库命令
 git   clone  [url]
  • git克隆的是该仓库服务器上的几乎所有的数据(包括日志信息、历史记录等),而不仅仅是复制工作文件.当你执行git clone 命令的时候,默认配置下远程Git仓库中的每一个版本都将被拉取下来

四.移除无效的远程仓库

  • 1.移除远程仓库
 git  remote rm  仓库名称
  • 注意: 此命令只是从本地移除远程仓库的记录,并不会真正影响远程仓库

五.从远程仓库中抓取与拉取

  • 1.git fetch(抓取) 是从远程仓库获取最新版本到本地仓库,不会自动merge(合并到本地工作区)
 git  fetch  origin master 
  • 将远程仓库的文件保存在本地仓库,但是并不会显示出来,存储在.git/object文件夹中,以二进制的文件方式保存
  • 合并命令(显示到工作区)
git merge origin/master
  • 进行合并,显示到文件夹中
  • 2.git pull (拉取) 是从远程仓库获取最新版本并merge(合并)到本地仓库
 git  pull  origin 分支名称
  • 第一种应用场景: 我们想要获取远程仓库的代码
    1. 初始化仓库
  • 2.添加远程仓库地址
  • 3.进行pull
  • 第二种应用场景: 如果当前本地仓库不是远程仓库克隆,而是本地创建的仓库,并且仓库中存在文件
  • 1.初始化仓库
  • 2.查看仓库文件状态
  • 3.添加对应的文件从工作区到暂存区


  • 4.提交对应的文件从暂存区到版本库

    -5.添加远程仓库

    注意:报错为fatal: refusing to merge unrelated histories =>远程仓库和本地仓库的文件不同或版本不同
  • 6.强行进行拉取(将本地仓库与远程仓库进行合并)
git pull origin master --allow-unrelated-histories

六. 将本地仓库推送到远程仓库

  • 1.首先让修改文件加入版本库
 git commit -a -m "日志名称"
  • -a:可只将所有被修改或者已删除的且已经被git管理的文档提交倒仓库中。如果只是修改或者删除了已被Git 管理的文档,是没必要使用git add 命令的。
  • 2.推送到远程仓库
 git push [remote-name] [branch-name]

七.git 分支

一.分支有什么好处

几乎所有的版本控制系统都以某种形式支持分支
使用分支意味着你可以把你的工作从开发主线上分离开来,以免影响开发主线
Git的master分支并不是一个特殊的分支,它和其他分支没有区别,之所以几号每一个仓库都有一个
master,是因为git init 命令默认去创建它,并且大多数人都懒得去改动它

二.查看分支

  • 1.本地分支
 git branch
  • 2.远程分支
    git branch -r
  • 3.查看所有分支
git branch -a
  • "*" 代表当前处于什么分支

二.创建分支(创建的本地分支)

      git  branch 分支名称
  • 这是在master分支下创建的b1分支 ==> b1分支的内容和master的一样

三.切换分支(切换本地分支)

     git checkout 分支名称

四.将本地分支推送至远程仓库分支

git push  origin  分支名称
(不管当前处于那个分支,都可以提交其他分支)
 例如 b1分支可以上传b2分支

五.合并分支

    1. 将b2 分支内容合并到master分支中(在master分支下面进行操作)
git merge  合并分支名称
    1. 有时候合并操作不会如此顺利,如果你在二个不同的分支中,对同一个文件的同一个部分
      进行了不同的修改,Git看没有办法合并它们,同时会提示文件冲突,
      此时需要我们打开冲突文件并修复冲突内容,最后执行git add命令来标识冲突已解决


  • Automatic merge failed : fix conficts and then commit the result=> 自动合并失败:修复冲突,然后提交结果
  • b2和master分支User.java都进行了修改之后,出现了冲突,我们需要手动进行修改
  • 使用git add 进行标识(表明我们已经手动处理好冲突)
  • 3.将新添加的文件推送到远程仓库
 git push  origin 分支名称

六.删除分支

  • 1.删除本地分支
    git branch -d  分支名称
  • 我在修改完b2分支User.java,并没有推送到远程仓库,

    造成远程仓库分支与本地仓库分支有不同出现这个错误,提醒你代码不同
  • 如果要删除分支中进行了一些开发动作,此时执行上面的删除命令并不会,
    删除分支,如果坚持要删除分支 git branch -D 分支名称

注意:当前在b2分支下删除b2分支是不允许的,需要切换到不同分支

  • 2.删除远程仓库分支
 git  push origin -d 分支名称

八.标签

一.标签的作用

  • 像其他版本控制系统(VCS)一样,GIt可以给历史的某一个提交打上标签,以示重要.
    用这个功能来标记发布节点(v1.0,v2.0).标签是值某一个分支特定时间点的状态
    通过标签,可以很方便的切换记录时的状态

二.列出已有标签

    1. 列出所有标签
         git  tag
  • 2.查看tag信息
     git  show  [tag]

三.创建新标签

  • 1.新建标签
   git  tag  [tagName]

四. 将标签推送至远程仓库

  • 1.提交指定tag
     git  push origin  [tag]

五. 检出标签

  • 1.新建一个分支,指向某个tag
  git checkout -b [branch] [tag]
  • 新建一个分支为b3,b3的内容为v1.0版本


  • 2.应用场景
    • 在不改变原有版本的基础上,进行升级
    • 新建分支为b3,版本内容为v1.0
    • 进行下步开发时,修改b3内容,进行提交
    • 创建新版本,进行上传远程仓库

六.删除标签

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