在日常的开发中,适用版本控制系统来进行协同开发已经是工作中的常态,使用比较多的要数git这个工具,今天就来说下git的日常用法以及在开发中的一些疑惑。

一、概述

git在日常开发中广泛应用,其概念可以去百度,这里就不在赘述。git是管理文件的,有两个比较重要的概念远程仓库和本地仓库,所谓远程仓库,可以理解为在某个地方有一个公共的池子,在这个池子中放着大家都可以访问到的资源,当然前提是你能访问到这个池子;所谓本地仓库那当然就是你自己本地的东西了。那要如何管理远程仓库和本地仓库,以及如何实现远程仓库和本地仓库的互通那,这个就是git的内容了,简单点理解git就可以进行上面的本地仓库、远程仓库间的管理。既然要进行本地仓库的管理,那么就必须要有git软件,也就是经常说的git,其软件安装可以从官网下载,并进行安装,下面是我下载的软件的截图,

点击这个软件就可以进行安装。安装完成后在本地机器的任何位置鼠标右键可以出现下面的菜单,说明安装成功,

在经常的开发过程中,使用的都是IDE(eclipse或idea)进行开发,在IDE中也会集成git插件,但是和前边自己安装的是不一样的,但功能上说是一样的,建议自己单独安装,且IDE中都提供自定义安装的配置,下面以idea为例,看其配置的地方,

在idea中file->settings中,搜索git,找到下面的页面

在上图中,就是配置的自己安装的git的目录,然后点击“test”,进行测试出现git的版本号即为配置成功。

二、详述

在前边说了自定义安装的git和IDE中git的不同之处(建议在IDE中配置单独安装的git),那么如何把一个文件或者文件夹交给git进行管理。这里有两种方式,其实也可以说是一种方式,因为后者使用IDE的方式,其实也是借助于git的命令。也就是说可以使用git命令行和IDE的方式。

git命令行是什么,前边说到git安装成功后,在任意一个位置鼠标右键都会有两个菜单“Git GUI Here”、“Git Bash Here”,那么“Git Bash Here”便是打开git的命令行,如下图我想把ideaws这个文件夹下的文件交给git进行管理,在这个文件夹下鼠标右键选择“git bash here”

出现上边的黑色弹出框这便是git的命令行,此命令行和linux的命令行很像,且可以使用linux的命令,如pwd和ll

通过上面的命令可以知道和linux下的显示是一致的。在命令行下就可以执行git的命令,可以执行git init命令,新建一个git代码库,

通过上面的命令就创建了一个git的本地代码库,接下来通过git status 命令,查看下其状态,

大体意思是,在master分支上还没有文件提交,没有被追踪的文件有.idea/、MyFirst.html、pom.xml。并且有提示,可以使用git add <file>命令可以进行文件追踪。这是什么意思那,在git中有工作区、暂存区、仓库区(本地代码库)等概念,一般一个文件如果没有执行过git add命令,那么其在工作区也就是没有被追踪;执行完git add命令后在暂存区也就是被追踪了;执行了git commit后便在本地代码库中,使用git status命令可以看到其状态,并且给出了提示可以使用git add命令可以添加到暂存区,也就是可以被追踪。下面使用git add命令

从上面可以看到使用git status命令后又发生了变化,pom.xml已经添加到了暂存区,可以使用git rm --cached 从暂存区移除,可以看到还有./idea/和MyFirst.iml两个文件没有加入暂存区,下面使用git rm --cached命令,

可以看到pom.xml已经被移除暂存区。那么如何添加到仓库区那,使用git commit命令

在执行git commit pom.xml命令后,会进入一个编辑的页面,相当于在linux下执行了vim file命令,这里需要输入一段文件,作为提交的说明,我这里输入的是“第一次提交”,也可以使用git commit -m "第二次提交" MyFirst.iml命令

三、总结

本文重点讲解了git的安装以及IDE环境中的git的区别,主要演示了git客户端命令行模式下的操作,

git init/git init <folder>

git add <file>

git rm --cached  <file>

git commit <file>/git commit -m <file>

git status

另外细心的小伙伴可能发现在截图中还有另外一个命令git restore --staged <file>,该命令下次再讲。

有不当之处,欢迎指正,感谢!

git操作之一:git add/commit/init的更多相关文章

  1. AS中Git操作和Git工作流

    查阅并学习安卓中如何使用Git,并扩展学了下Gitflow工作流程,以下是我觉得有用,系统,详细的相关文章. AS中Git操作系列 https://www.jianshu.com/p/0cc226ee ...

  2. git操作之git clean删除一些没有git add的文件

    删除 一些 没有 git add 的 文件: git clean 参数 -n 显示 将要 删除的 文件 和  目录 -f 删除 文件,-df 删除 文件 和 目录

  3. git 操作实践

    git操作: - git是一个用于帮助用户实现版本控制的软件 #首先创建项目 1. cd到项目文件目录 2. 鼠标右键点击 Git Bash Here 3. git init #在项目文件目录生成 . ...

  4. 使用Gitkraken进行其他Git操作

    使用Gitkraken进行其他Git操作 查看某次 commit 的文件改动 使用 Gitkraken 能非常方便的看到任意一次的 commit 对项目文件的改动. 具体操作是:在树状分支图上单击某个 ...

  5. Git 学习(三)本地仓库操作——git add & commit

    Git 学习(三)本地仓库操作——git add & commit Git 和其他版本控制系统如SVN的一个不同之处就是有暂存区的概念.这在上文已有提及,本文具体说明什么是工作区及暂存区,以及 ...

  6. Git学习 --> 个人常用命令add,commit以及push

    Git命令行配置1 安装Github2 安装msysgit3 要配置用户名和油箱  git config --global user.name <用户名> 我的命令就是:git confi ...

  7. [git] 细说commit (git add/commit/diff/rm/reset 以及 index 的概念)

    http://kasicass.blog.163.com/blog/static/39561920133294219374/ 创建测试仓库 $ git init $ echo "line o ...

  8. 【记录】gitLab git命令add commit fetch pull push

    最近项目使用git进行版本控制,由于之前用svn,所以对git不是太熟悉,网上一通乱找git各命令含义, 以下内容感觉讲的很详细,可以很清楚理解git提交流程,博主把重要的信息用红字标注了,更加显眼. ...

  9. 第二章——建立一个HelloWorld项目,练习使用git的add/commit/push/pull/fetch/clone等基本命令。比较项目的新旧版本的差别-----答题者:徐潇瑞

    1.首先下载安装git,很简单所以就不详细说了,当弹出一个类似的命令窗口的东西,就说明Git安装成功 2.因为Git是分布式版本控制系统,所以需要填写用户名和邮箱作为一个标识 3.接着,注册githu ...

  10. git merge --squash 选项合并commit操作实例

     参考: [转] git merge 将多个commit合并为一条之--squash 选项 git checkout master git pull origin master # 本地先拉取最新的m ...

随机推荐

  1. Flutter(三):Flutter App 可行性分析

    一.生态建设 第三方Package https://pub.dev/packages?sort=popularity 截止2021年4月,第三方库达到17000+ 二.Devops 代码风格检查 An ...

  2. Kubernetes1.16安装[kubadm方式]

    Kubernetes 安装手册(非高可用版) 集群信息 1. 节点规划 部署k8s集群的节点按照用途可以划分为如下2类角色: master:集群的master节点,集群的初始化节点,基础配置不低于2C ...

  3. UILabel的DrawDrect方法

    一.问题 如果继承UILabel实现自己的一个Label,并且在子类的DrawRect方法中留空,什么都不写,会发生什么? 代码如下: VC @interface ViewController () ...

  4. CSP-S2021 游记

    那天是惊蛰 满天花瓣 就像现在 我看清了无池里的那个人 前言 终于是开了 游记 的坑(期盼已久!) 虽然参加过 CSP-J2019 ,CSP-S2020 以及 NOIP2020 ,但是都没有写过游记( ...

  5. 史上最强 AI 翻译诞生了!拳打谷歌,脚踢 DeepL

    CoT 推理范式 默认情况下,大语言模型通常是直接给出问题的最终答案,中间推理过程是隐含的.不透明的,无法发挥出大模型最极致的理解能力.如果你用它来充当翻译,可能效果和传统的机器翻译也差不了太多. 如 ...

  6. 【Java面试题-基础知识03】Java线程连环问

    1.Java中的线程是什么? 在Java中,线程是程序执行流的最小单元.每个Java程序都至少有一个主线程,也称为主执行线程,它是程序开始执行时自动创建的.除了主线程外,程序员还可以创建额外的线程来执 ...

  7. P6259

    problem 考虑使用 dfs 模拟. 由于一个程序可能在不进入无限循环的情况下运行很多步,这将会非常缓慢.因此,接下来要加速模拟,可以用记忆化搜索. 在网格中,机器人的可能状态(位置和朝向)只有 ...

  8. MFC 好像不太智能

    我的想法就是这个MFC可能十靠鼠标和点击啥的偏主力 自己配消息处理函数容易出错,一旦代码坏了,不可逆向寻找失去的代码 多以能用鼠标设计的尽量用用编译器提供的界面去设计 当然啊这个API还是要自己找 这 ...

  9. 企业级私有仓库Harbor

    仓库的概念也就是用于存储,docker仓库用于存储镜像. 镜像构建完成后,很容易可以在宿主机上运行,但是如果要在其他服务器上运行,则需要考虑镜像的分发,存储的问题. 共有/私有/仓库 Docker R ...

  10. python 注册nacos 进行接口规范定义

    背景: 一般场景 python服务经常作为java下游的 算法服务或者 数据处理服务 但是使用http 去调用比较不灵活,通过注册到nacos上进行微服务调用才是比较爽的 1.定义feginapi的接 ...