关于Git的常用命令及其功能

本文详细介绍了Git的常用命令,包括初始化仓库、添加文件、查看状态、差异比较、回退版本、分支操作、合并分支、克隆远程库、忽略文件修改以及子模块的添加、使用和删除等,帮助读者更好地理解和掌握Git的日常使用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

1、初始化一个Git仓库

2、添加文件到Git仓库,分两步:

3、查看仓库的当前状态:

4、查看差异

5、查看日志

6、回退版本

7、记录命令

8、git diff 文件对比

9、还原修改

10、撤销unstage

11、从版本库中删除该文件

12、关联远程库

13、克隆远程库

14、分支

15、合并分支

16、常用总结:

17、git 忽略本地文件的修改

18、git中submodule子模块的添加、使用和删除


1、初始化一个Git仓库

git init

2、添加文件到Git仓库,分两步:

(1)使用命令git add <file>,注意,可反复多次使用,添加多个文件;

(2)使用命令git commit -m <message>,完成。

3、查看仓库的当前状态:

git status

4、查看差异

顾名思义就是查看difference,显示的格式正是Unix通用的diff格式

git diff

5、查看日志

显示从最近到最远的提交日志,如果嫌输出信息太多,看得眼花缭乱的,可以试试加上--pretty=oneline参数

git log

6、回退版本

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

git reset --hard HEAD^

7、记录命令

Git提供了一个命令git reflog用来记录你的每一次命令:

git reflog

8、git diff 文件对比

(1)  git diff  filepath 工作区与暂存区比较

(2) git diff HEAD filepath 工作区与HEAD ( 当前工作分支) 比较

(3)git diff --staged 或 --cached  filepath 暂存区与HEAD比较

(4) git diff branchName filepath  当前分支的文件与branchName 分支的文件进行比较

(5) git diff commitId filepath 与某一次提交进行比较

9、还原修改

e可以丢弃工作区的修改,其实是用版本库里的版本替换工作区的版本,无论工作区是修改还是删除,都可以“一键还原”。

git checkout -- fil

10、撤销unstage

可以把暂存区的修改撤销掉(unstage),重新放回工作区

git reset HEAD <file>

11、从版本库中删除该文件

就用命令git rm删掉,并且git commit

12、关联远程库

    要关联一个远程库,使用命令git remote add origin git@server-name:path/repo-name.git

    关联后,使用命令git push -u origin master第一次推送master分支的所有内容;

         此后,每次本地提交后,只要有必要,就可以使用命令git push origin master推送最新修改;

13、克隆远程库

        要克隆一个仓库,首先必须知道仓库的地址,然后使用git clone命令克隆。

        Git支持多种协议,包括https,但通过ssh支持的原生git协议速度最快。

14、分支

       git checkout命令加上-b参数表示创建并切换,相当于以下两条命令:(假设分支为dev)。

       git branch dev,git branch -d dev :删除dev分支

       git checkout dev

       git branch:查看当前分支

15、合并分支

git merge命令用于合并指定分支到当前分支

当Git无法自动合并分支时,就必须首先解决冲突。解决冲突后,再提交,合并完成。

解决冲突就是把Git合并失败的文件手动编辑为我们希望的内容,再提交。

git log --graph命令可以看到分支合并图。

16、常用总结:

查看分支:git branch

创建分支:git branch <name>

切换分支:git checkout <name>

创建+切换分支:git checkout -b <name>

合并某分支到当前分支:git merge <name>

删除分支:git branch -d <name>

17、git 忽略本地文件的修改

项目开发过程中,会遇到本地配置文件每个开发人员不同的情况,但如果遇到类似数据库配置这种最终需要加入 git 版本控制的配置,则会陷入两难境地。要么不跟踪,要么有人提交后其他人同步下来必须手动修改,非常麻烦。其实,对于已被纳入版本管理的文件,git 也提供了很好的解决办法。

告诉git忽略对已经纳入版本管理的文件 .classpath 的修改,git 会一直忽略此文件直到重新告诉 git 可以再次跟踪此文件

git update-index --assume-unchanged .classpath

查看当前被忽略的、已经纳入版本库管理的文件:

git ls-files -v | grep -e "^[hsmrck]"

18、git中submodule子模块的添加、使用和删除

背景
项目中经常使用别人维护的模块,在git中使用子模块的功能能够大大提高开发效率。使用子模 后,不必负责子模块的维护,只需要在必要的时候同步更新子模块即可。本点主要讲解子模块相关的基础命令。

子模块的添加
添加子模块非常简单,命令如下:

git submodule add <url> <path>

其中,url为子模块的路径,path为该子模块存储的目录路径。

执行成功后,git status会看到项目中修改了.gitmodules,并增加了一个新文件(为刚刚添加的路径)

git diff --cached 查看修改内容可以看到增加了子模块,并且新文件下为子模块的提交hash摘要

git commit提交即完成子模块的添加

子模块的使用
克隆项目后,默认子模块目录下无任何内容。需要在项目根目录执行如下命令完成子模块的下载:

git submodule init
git submodule update


或:

git submodule update --init --recursive


执行后,子模块目录下就有了源码,再执行相应的makefile即可。

子模块的更新
子模块的维护者提交了更新后,使用子模块的项目必须手动更新才能包含最新的提交。在项目中,进入到子模块目录下,执行 git pull更新,查看git log查看相应提交。完成后返回到项目目录,可以看到子模块有待提交的更新,使用git add,提交即可。

删除子模块
有时子模块的项目维护地址发生了变化,或者需要替换子模块,就需要删除原有的子模块。删除子模块较复杂,步骤如下:

  1. rm -rf 子模块目录 删除子模块目录及源码
  2. vi .gitmodules 删除项目目录下.gitmodules文件中子模块相关条目
  3. vi .git/config 删除配置项中子模块相关条目
  4. rm .git/module/* 删除模块下的子模块目录,每个子模块对应一个目录,注意只删除对应的子模块目录即可

执行完成后,再执行添加子模块命令即可,如果仍然报错,执行如下:

git rm --cached 子模块名称

完成删除后,提交到仓库即可。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值