什么?作为程序员你都工作了还不会用Git(一)

简介: Git是一个免费的开源 分布式版本控制系统,旨在快速高效地处理从小型到大型项目的所有内容。Git易于学习, 占地面积小,具有闪电般的快速性能。它具有Subversion,CVS,Perforce和ClearCase之类的SCM工具,具有廉价的本地分支,方便的暂存区域和 多个工作流等功能。--《Git官网》

一、git管理文件和代码的使用


Git是一个免费的开源 分布式版本控制系统,旨在快速高效地处理从小型到大型项目的所有内容。Git易于学习, 占地面积小,具有闪电般的快速性能。它具有Subversion,CVS,Perforce和ClearCase之类的SCM工具,具有廉价的本地分支,方便的暂存区域和 多个工作流等功能。--《Git官网


依稀还记得当初写论文的时候,保存的论文文档是这样子的,代码文件夹是这样的。根据需求删除或修改一些东西后另存为另一个文件,过一段时间后,想找回被删除的文字/代码,但是不知道保存在哪个文件里去了,想保留最新的一个把其他都删除掉,又怕哪天会用上不敢删除,真的烦人,这个时候就轮到我们强大的Git出场了,顺便记录一下自己从廖雪峰的官方网站Git教程的学习。


1.png


2.png


二、我工作中常用的指令(一)



1、如果你没有项目的代码,组长一般都会给你一个链接,这时候你就可以用git命令git clone下来


git clone  https://github.com/CodingEmbedded/mygit.git


3.png


2、接到主管的需求(此刻的我是想拿我的ZFB收款码出来的),一般来说都是新建一个分支的去开发的


git check -b 分支名


4.png


3、此时就可以愉快地写bug了,有时候同事/主管问你改了什么问题,你改了挺多不记得可以先statusdiff一下可以看到我们修改了那些文件增删了那些内容


git status
 git diff


5.png


4、写好之后就可以先git addgit commit进行本地代码的提交


git add
 git commit -m "message"


5、提交到远程仓库需要用push


git push


6、假如在你写的时候有人提交了代码,这时候你需要pull最新的代码下来


git pull


如果没有冲突就可以提交代码(有冲突的话就按照Git提示做修改再提交)


7、你的代码有一个致命bug,并且已经提交到了远程仓库,版本回退的方法: 先用下面命令找到要回退的版本的commit_id:


git reflog


然后回退版本:


git reset --hard commit_id


最后强制推送到远程分支:


git push -f


可以看到图1是提交了一个记录为“add or del”,图2图3为回退版本操作,图4图5对比可以看出git已经回退了


图1


6.png


图2


7.png


图3


8.png


图4


9.png


图5


10.png


1、创建版本库


1、新建一个空目录(如下我是E盘 –> code目录下新建一个test版本库)


2、通过git init命令把这个目录变成Git可以管理的仓库


3、ls -ah查看.git>目录和./>../>,那是因为.git这个目录默认是隐藏的。


11.png


2、添加文件到仓库


1、编写一个文件 text.txt


2、使用命令git add <file>,可反复多次使用,添加多个文件,添加全部文件使用git add -A


3、使用命令git commit -m <message>,完成,message为提交的文本信息


12.png


3、查看工作状态和修改的文件


1、要随时掌握工作区的状态,使用git status命令。


2、如果git status告诉你有文件被修改过,用git diff可以查看修改内容。


13.png


4、git的版本回退


1、版本回退前,用git log可以查看提交历史,以便确定要回退到哪个版本。


2、HEAD指向的版本就是当前版本,因此,Git允许我们在版本的历史之间回退,使用命令git reset --hard commit_id


3、Git必须知道当前版本是哪个版本,在Git中,用HEAD表示当前版本上一个版本就是HEAD^,上上一个版本就是HEAD^^,当然往上100个版本写100个^比较容易数不过来,所以写成HEAD~100


4、要重返未来,用git reflog查看命令历史,以便确定要回到未来的哪个版本。使用命令git reset --hard commit_id


14.png


5、暂存区


提交一个readme.txt的过程


15.png


6、管理修改


Git是如何跟踪修改的,每次修改,如果不用git add到暂存区,那就不会加入到commit中。


7、撤销修改


场景1:当你改乱了工作区某个文件的内容,想直接丢弃工作区的修改时,用命令git checkout -- file


场景2:当你不但改乱了工作区某个文件的内容,还添加到了暂存区时,想丢弃修改,分两步,第一步用命令git reset HEAD <file>,就回到了场景1,第二步按场景1操作。


场景3:已经提交了不合适的修改到版本库时,想要撤销本次提交,参考四、git的版本回退一节(用git log查看命令历史,以便确定要回到未来的哪个版本。使用命令git reset --hard commit_id),不过前提是没有推送到远程库。


8、删除文件


命令git rm用于删除一个文件。如果一个文件已经被提交到版本库,那么你永远不用担心误删,但是要小心,你只能恢复文件到最新版本,你会丢失*最近一次提交后你修改的内容*


git checkout -- <file>其实是用版本库里的版本替换工作区的版本,无论工作区是修改还是删除,都可以“一键还原”。



目录
相关文章
|
7月前
|
程序员 开发工具 git
好程序员Git入门到精通教程
本课程主要通过命令行和idea来介绍Git的安装、仓库创建、工作流、远程仓库、克隆仓库、标签管理和分支管理等Git的主要内容。 另外关于GitHub的使用介绍也有完整的说明和使用,接轨生产环境使用方式。
45 1
好程序员Git入门到精通教程
|
7月前
|
程序员 开发工具 git
【程序员英语 代码提交】C++工程师的代码提交艺术:git commit 时 精确表达与最佳实践
【程序员英语 代码提交】C++工程师的代码提交艺术:git commit 时 精确表达与最佳实践
185 1
|
7月前
|
存储 程序员 开发工具
程序员的20大Git面试问题及答案
程序员的20大Git面试问题及答案
|
安全 程序员 开发工具
代码版本管理笔记 | Python 程序员也应该会的 Git 分支操作
代码版本管理笔记 | Python 程序员也应该会的 Git 分支操作
192 0
|
数据采集 安全 JavaScript
代码版本管理笔记 | Python 程序员也应该会的 Git 进阶操作
代码版本管理笔记 | Python 程序员也应该会的 Git 进阶操作
170 0
|
数据采集 缓存 安全
代码版本管理笔记 | Python 程序员也应该会的 Git 基础操作
代码版本管理笔记 | Python 程序员也应该会的 Git 基础操作
100 0
|
缓存 安全 程序员
程序员都需要知道的Git。
程序员必须会的技能哦,快来看看吧。
166 1
程序员都需要知道的Git。
|
前端开发 数据可视化 程序员
超详细的前端程序员git指北
超详细的前端程序员git指北 git是团队开发必备工具之一,本期教程我们从一个开发人员开发新功能,然后合并到主分支上的一整个流程进行演示讲解,而不是仅仅告诉你这个命令的作用是什么,区别是什么,毕竟程序员始终得贯穿“学以致用”这条硬道理,最后再对不同的常见命令及逆行讲解。
180 0
|
开发工具 git
在实际工作开发中非常实用的几个 git 命令(二)
在实际工作开发中非常实用的几个 git 命令
在实际工作开发中非常实用的几个 git 命令(二)
|
前端开发 开发工具 git
在实际工作开发中非常实用的几个 git 命令(一)
在实际工作开发中非常实用的几个 git 命令
在实际工作开发中非常实用的几个 git 命令(一)