收藏!史上最干货的Git命令整理,一文胜千言

网友投稿 706 2022-05-29

Git目前已经成为国内主流互联网公司通用的代码管理工具;大小企业也已随着潮流纷纷从CVS, Subversion向Git过度。可以说,Git已经成为一名合格程序员的必备技能。

而对于我们来说,无论新手或老油条,都需要有一套Git命令字典,方便随时使用。本文基本上涵盖了常用到的所有Git命令,足矣让我们得心应手的在公司使用Git管理代码。

祝各位在公司游刃有余,早日升职加薪。北漂不易,支持一下博主。

另外如有问题请在评论区留言呦,我会及时纠正。

目录

Git简介

Git与SVN的区别

Git基本流程

Git文件状态

用户配置

单机使用简单流程

Git命令记录

1、新建本地仓库

2、Git配置信息

3、增加、删除文件

4、代码提交

5、操作分支(branch)

6、标签Tag

7、查看信息

8、远程同步

9、撤销操作

10、其他操作

11、.gitignore忽略配置(提交到git时,忽略部分文件)

12、Git常用命令速查表

Git简介

Git是一款免费、开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。

Git是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。

Git与常用的版本控制工具 CVS, Subversion 等不同,它采用了分布式版本库的方式,不必服务器端软件支持。

Git属于分布式版本控制系统,每个人电脑上都有一个完整的版本库,称为本地仓库,在本地就可以进行版本控制。另外在其他服务器上还有一个版本库,称为中央仓库,中央仓库的作用是进行版本交换,每个开发人员要保持代码一致只需要和中央仓库进行交互就可以了。

Git与SVN的区别

Git不仅仅是个版本控制系统,它也是个内容管理系统(CMS),工作管理系统等。

如果你是一个具有使用SVN背景的人,你需要做一定的思想转换,来适应Git提供的一些概念和特征。

区别点:

Git是分布式的,SVN不是:这是Git和其它非分布式的版本控制系统,例如SVN,CVS等,最核心的区别。

Git把内容按元数据方式存储,而SVN是按文件:所有的资源控制系统都是把文件的元信息隐藏在一个类似.svn,.cvs等的文件夹里。

Git分支和SVN的分支不同:分支在SVN中一点不特别,就是版本库中的另外的一个目录。

Git没有一个全局的版本号,而SVN有:目前为止这是跟SVN相比GIT缺少的最大的一个特征。

Git的内容完整性要优于SVN:Git的内容存储使用的是SHA-1哈希算法。这能确保代码内容的完整性,确保在遇到磁盘故障和网络问题时降低对版本库的破坏。

Git基本流程

下图是Git基本操作的流程图,一般来说,日常使用只要记住下图7个命令就可以了。当然,不能靠这几个基础语法就以为熟练使用了Git哦,下面整理了详细的语法记录,结合实际情况,祝你快速掌握Git。

Git文件状态

untracked:未跟踪,表示文件不受git管理,一般新建的文件处于该状态   Untracked files

staged:已暂存,表示对以修改的文件做了标记,使之包含在下次要提交的文件列表中   Changes to be committed

committed:已提交,表示文件已经被提交到本地仓库

modified:已修改,表示文件内容已被修改,但是没有做标记    Changes not staged for commit

用户配置

如果Git没有获取到用户配置,则只能拉取代码,不能修改,想使用git,你要告诉git是谁在使用;

如下,配置用户名和邮箱

$ git config --global user.name "xxx"

$ git config --global user.email "xxxx@qq.com"

查看当前用户名和邮箱

$ git config --global user.name   # 获取当前登录的用户

$ git config --global user.email  # 获取当前登录用户的邮箱

单机使用简单流程

单人使用时,只有master,推送项目到远程仓库基本流程就没必要这么麻烦,如下即可:

在git上创建远程远程仓库

git clone [HTTP URL] # 克隆下来后是一个带有.git的文件夹,也就是本地仓库

git add . # 添加该目录下所有文件到暂存区,也可以指定文件名称

git commit -m "第一次提交" # 添加文件到本地仓库并提交描述信息

git push -u origin master # 把本地仓库的文件推送到远程仓库(-u 表示第一次推送master分支的所有内容,后面再推送就不需要-u了)

Git命令记录

1、新建本地仓库

在当前目录新建一个Git代码库;

该命令将在该项目目录下创建一个.git的子目录,包含该Git仓库中所有的必须文件。

2、Git配置信息

git config --list

git config -l

编辑Git全局配置

Git配置解析

user.email=chenhh@xxx.com

user.name=chenhh

core.ignorecase=false # 不许忽略文件名大小写

core.autocrlf=input # 换行模式为 input,即提交时转换为LF,检出时不转换

core.filemode=false # 不检查文件权限

core.safecrlf=true # 拒绝提交包含混合换行符的文件

core.editor=vim

core.repositoryformatversion=0 # Internal variable identifying the repository format and layout version

core.bare=false # 默认不创建裸仓库

core.logallrefupdates=true # log 所有 ref 的更新

core.precomposeunicode=true # Mac专用选项,开启以便文件名兼容其他系统

push.default=simple # 只推送本地当前分支,且与上游分支名字一致

alias.lg=log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit

pull.rebase=true # 强制开启 rebase 模式

credential.helper store # 记住密码

3、增加、删除文件

4、代码提交

使用一次新的commit,替代上一次提交;

如果代码没有任何新变化,则用来改写上一次commit的提交信息

5、操作分支(branch)

6、标签Tag

7、查看信息

git status命令的作用是显示仓库文件状态,红色表示工作目录的文件被修改但还没有提交到暂存区,绿色表示已经提交到暂存区。

以极简的方式显示文件状态(下面是显示内容解析):git status -s

A:本地新增的文件(服务器上没有)

C:文件的一个新拷贝

D:本地删除的文件(服务器上还在)

M:红色为修改过未被添加进暂存区的,绿色为已经添加进暂存区的

R:文件名被修改

T:文件的类型被修改

U:文件没有被合并(你需要完成合并才能进行提交)

X:未知状态(很可能是遇到git的bug了,你可以向git提交bug report)

收藏!史上最干货的Git命令整理,一文胜千言

?:未被git进行管理,可以使用git add fileName把文件添加进来进行管理

1.git log --follow [file]

2.git whatchanged [file]

8、远程同步

9、撤销操作

10、其他操作

11、.gitignore忽略配置(提交到git时,忽略部分文件)

在根目录下创建.gitignore文件,添加下方内容代表忽略该文件或该文件夹下文件不被Git追踪,即不会提交。

注意:新加.gitignore只能忽略那些原来没有被提交过的文件,如果某些文件已经被纳入了版本管理中,则修改.gitignore是无效的。

target/

.settings/

.idea/

.mvn/

*.classpath

*.options

*.project

12、Git常用命令速查表

Git SVN

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:GaussDB T 分布式集群部署(1)
下一篇:陈晔:测试平台化是趋势,但不应强求
相关文章