目前Git已经是大部分公司默认的版本控制工具,也是一个软件开发人员必会的技能。最近公司招了几个刚入行的新人不会使用Git,为了帮助他们快速了解和上手Git,就给他们大致讲解了一些基本操作。

基本设置

Git是分布式的版本管理系统,所以每一个Git客户端必须明确地自报家门,配置你的用户名和电子邮箱,方便大家检索到你(这个 Bug 是不是你写的?)你可以全局配置它们:

 # 全局名称为 felordgit config --global user.name felord# 全局信箱为 felord@felord.comgit config --global user.email felord@felord.com

如果你不想配置全局,你还可以在具体项目的根目录下 使用 git config --local为该项目添加独立的配置。

初始化 Git 仓库

这是每一个项目被Git仓库托管的开始。假如你的项目已经建立并编写了不少的代码,你可以执行

# 转到代码的目录 执行 git init
cd /path/to/your/existing/code
git init

如果你想初始化一个新的项目并由Git托管。你可以换个方式执行git init命令:

git init <项目的目录路径>

还有一种初始化的方式就是使用git clone命令克隆远程项目到本地,这种方式每一个接触 Git 的人应该已经熟知了。

git clone https://github.com/NotFound403/payment-spring-boot.git

提交变更到本地

然后你编写了一些代码或者改动了一些代码,你需要把这些变更先提交到本地然后才能提交给远程仓库。如果这些代码没有被Git管理,你需要执行:

# 添加文件到Git
git add  /path/file
# git add ./cn/felord/Test.java

然后提交到本地仓库:

git commit -m '提交的信息'

如果想规范提交信息,可参考我的另一篇文章Git 提交规范。

推送代码到远端

如果你是git clone获取的项目,直接使用 git push 就可以了。如果你是一个没有关联远端Git仓库的新项目,你可以通过以下命令进行关联:

# git remote add origin  https://github.com/NotFound403/payment-spring-boot.git
git remote add <名称 通常是 origin>  项目的远程仓库地址

当然你可以添加多个远端,比如同时托管到GiteeGitHub,但是同时只能推送到一个远端仓库。

然后执行下列命令就可以将代码提交的远端仓库:

# 将代码提交到 origin 仓库的 master 分支
git push -u origin master

检出分支

master分支的代码通常只合并完全没有问题的、可发布的代码。通常我们在开发或者修复 Bug 时会切换到其它分支进行,通常有以下几种Git工作流。

GitFlow

你可以使用git checkout命令来进行分支切换,例如切换到dev分支:

git checkout dev

如果你接到一个新需求或者修复一个新 Bug,而且被要求在新的分支上进行开发,则可以通过以下命令来新建并切换到一个新分支:

# 创建并切换到一个新特性开发分支
git checkout -b feature/9527

恢复/保存进度

当你开发着一个需求时,产品经理跑了过来告诉你有一个很急很关键的需求,明天上线!你不得不弄一个新分支,可你当前的需求还没搞完,除非git commit之后才能切换分支。但是把没有完成的工作commit不太利于维护 Git Log。这就用到另一个命令git stash了。

git stash save '不急不关键的需求暂存信息'

它可以把你未完成的工作暂存起来。等你完成了很急很关键的需求后再切回对应的分支,然后从stash列表中恢复继续开发。

查看状态

忘记了说另一个有用的命令git status了,它用于显示当前工作目录和暂存区的状态。使用此命令能看到哪些修改被暂存到了, 哪些没有, 哪些文件没有被 Git tracked 到。

> git status
On branch dev
Changes not staged for commit:(use "git add <file>..." to update what will be committed)(use "git restore <file>..." to discard changes in working directory)modified:   src/main/java/cn/felord/app/util/Coding.javano changes added to commit (use "git add" and/or "git commit -a")

如果你要查看提交的历史,就得使用另一个命令git log

总结

如果你是一个项目组长或者负责人,需要掌握的更多,可以去https://git-scm.com/book/zh/v2了解更多;对于一个普通开发者,这些基本命令足够应付日常工作了。给他们讲完后,他们很快就适应了 Git 开发工作流。虽然大多数 IDE 已经有替代了这些命令的可视化操作,但是掌握这些命令依然是有必要的。我是:码农小胖哥 ,多多关注、点赞、转发、再看,分享更多日常开发中的经历和感悟。

在一个大项目中我选择了另一种JDK实现AdoptOpenJDK

2021-03-21

虚拟现实:如果这个世界没有Java

2021-03-19

今天给没用过Git的新人简单培训了一下相关推荐

  1. Git和Github简单教程

    网络上关于Git和GitHub的教程不少,但是这些教程有的命令太少不够用,有的命令太多,使得初期学习的时候需要额外花不少时间在一些当前用不到的命令上. 这篇文章主要的目标是用较少的时间学习Git和Gi ...

  2. git仓库的简单使用

    笔记内容:git仓库的简单使用 笔记日期:2018-01-12 22.5/22.6 单机上使用git 22.7 建立远程仓库 22.8 克隆远程仓库 22.5/22.6 单机上使用git git是分布 ...

  3. 理解git结构与简单操作(四)合并分支的方法与策略

    接上节,此时的dev分支与master分支的进度就不一样了,所以需要将dev分支与master分支同步.这里需要的就是合并分支的操作,大家应该都知道用git merge或者git rebase. gi ...

  4. Git和Github简单教程【转】

    转自:https://www.cnblogs.com/schaepher/p/5561193.html#clone 原文链接:Git和Github简单教程 网络上关于Git和GitHub的教程不少,但 ...

  5. java servlet spring_带着新人简单看看servlet到springmvc

    好久都没有写博客了,不是因为自己懒了,而是总感觉自己知道的只是太少了,每次想写博客的时候都不知道怎么下手,不过最近看到一篇博客说的是springmvc,给了我比较大的兴趣,感觉一下子对整个spring ...

  6. git clone 一些简单笔记

    自使用了git后,就彻底喜欢上了,深深体会到了自由的感觉,记录一些简单的笔记和使用心得,仅供留迹,以备后查... git clone 命令参数: usage: git clone [options] ...

  7. 【git系列】简单入门git命令一

    目录 配置用户信息 建立git仓库 状态简览 暂存区 提交更新 跳过使用暂存区域 查看文件修改 总结 配置用户信息 命令: 配置用户名:git config --global user.name 'y ...

  8. git的一些简单用法

    git介绍 Git是目前世界上最先进的分布式版本控制系统(没有之一).版本控制:同一个文件内容经过更删改查后,文件名儿不同,最后想回头找第一个版本时,很难,版本控制就可以很好的解决 安装git 在li ...

  9. git配置-新人git配置

    个人git地址 仓库 - 疯批美人 (QAls) - Gitee.com 用户名 2037632974@qq.com 密码 开机密码 新人git配置 1. 在本机生成公私钥ssh-keygen -t ...

最新文章

  1. 用python+tornado+mongodb写的一个博客系统
  2. 多校第六场 HDU 4927 JAVA大数类+模拟
  3. 深入了解ibatis源码----简单ibatis示例代码
  4. ORA-12545: Connect failed because target host or object does not exist
  5. Hive内置运算函数,自定义函数(UDF)和Transform
  6. Android零基础入门第33节:Android事件处理概述
  7. (29)FPGA原语设计(差分时钟转单端时钟)
  8. MTK 驱动开发(24)---camera模块的制作
  9. 2013年最新省市区三级联动mysql数据库_省市区三级联动菜单(附数据库)
  10. Python的遗传算法GA优化深度置信网络DBN超参数回归预测
  11. mysql 表情符串_mysql支持emoji表情符存储
  12. 阿里巴巴-新加坡南洋理工大学成立联合研究院 开展全方位AI合作
  13. 常用APP的OpenUrl
  14. 企企通:新医改政策下,解锁医药行业供应链管理密码
  15. 段落分句Java,Java如何将段落分成句子?
  16. 数学分析教程(科大)——1.8笔记+习题
  17. 高频卡S50和S70标签存储结构了解
  18. 节点电压法求解一阶二阶电路方程参数
  19. 使用C# 创建PDF
  20. 对于Windows,GB18030是不可用的

热门文章

  1. android flutter 混合开发,Flutter(六)Android与Flutter混合开发(Hybird)
  2. 程序员进阶的10大黄金法则
  3. JavaScrip 学习笔记
  4. AQF量化投资金融分析师资源
  5. 【自然语言处理】韩语基础与入门(词汇篇)
  6. Jquery利用淘宝接口判断手机运营商和归属地
  7. 远程桌面提示CredSSP加密数据库修正
  8. paip VOB DVD视频的无损分割与截取
  9. 三年级计算机秒打汉字教案,武汉社版三年级全册信息技术 18.汉字输入我能行 教案...
  10. java 最烧脑的继承题_小学生这5道烧脑数学题,难倒了无数大学生,答对的都是高智商...