348-git常用操作命令及原理

本文详细介绍了Git的基本操作,包括gitclone、gitadd、gitcommit和gitpush等命令,以及如何在团队中协作开发。小张和啊亮通过Git进行代码提交和同步,展示了Git的工作区、暂存区、本地仓库和远程仓库的概念。同时,讲解了HEAD指针在版本管理中的作用。通过实例,阐述了多人协作时的代码拉取、提交和推送流程。

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

1、git常用操作命令及原理

【step 1】 在团队开发新项目时,项目负责人王sir(或者是团队专门负责维护代码仓库的人)先在公司私有的代码仓库上创建了一个项目(我们直接以git hub举例),如下:在这里插入图片描述
【step 2】 王sir把上面项目的地址(SSH地址)分享给组内其它成员,大家拿到git地址后,在本地通过git clone把远程仓库上的项目代码拉到本地,如下:在这里插入图片描述
作为项目组成员,可以在本地新建一个目录,专门存放该项目代码,通过git clone拉取远程代码,如下:
在这里插入图片描述

【step 3】小张是项目主程,责任重大,现在需要开发一个排序的代码,小张负责写具体算法。小张在firstsharedproject目录下创建了一个sort.c和sort.h文件,分别写了相应代码,如下:
在这里插入图片描述
开发完成以后,小张需要把改动的代码提交到远程仓库(github)上去。

【step 4】git add命令可以把本地修改的代码或者文件,添加到本地暂存区(后面讲详细原理),如下:
在这里插入图片描述

【step 5】通过git commit提交命令,把修改的代码文件,从暂存区提交到本地的master分支上去(实际上当我们第一次用git clone拉取远程master分支的代码时,本地也创建了一个master分支,保存用户修改后需要提交的代码,分布式嘛,每个机器上都可以维护一个代码仓库!)

在这里插入图片描述
【step 6】代码存到小张自己电脑上的master分支不行啊,别人看不到代码修改,所以小张再通过git push命令,把本地master分支上的所有代码,都推送到远程master分支上去了(俗称“合代码”)
在这里插入图片描述
默认的远程仓库名字就是origin,第一次推送会提示输入git hub账号用户名和密码,输入即可。

【step 7】小张输入git log,可以查看修改日志
在这里插入图片描述
【step 8】可以查看git hub上面项目master分支的代码修改,发现sort.c和sort.h都已经推送到git hub远程代码仓库的master分支上了。
在这里插入图片描述
【step 9】小张已经把排序的代码推送到远程master分支了,现在给小弟啊亮分配任务,需要写一段测试代码,测试排序函数的正确性,步骤是:

  1. 啊亮需要先在git bash上通过git pull命令拉取firstsharedproject项目的最新代码,然后基于最新代码进行修改(注意:当修改代码前,执行一下git pull命令是一个好习惯!)
  2. 修改完代码,通过git add、git commit、git push命令把修改推送到git hub远程项目代码仓库中,完成。

在这里插入图片描述
在这里插入图片描述
【step 10】啊亮推送完成以后,可以通过git log查看代码修改日志,会发现所有人对项目的修改信息都记录在列
在这里插入图片描述

git clone命令的作用是,可以把指定的远程仓库代码拉取到本地
git add 把git工作区的代码改动添加到暂存区
git commit -m “xxx” 把暂存区的代码提交到本地分支
git push 把本地分支的代码推送(提交)到远程分支上去
git pull 把远程代码拉取到本地
git status 查看当前操作的状态信息
git log 查看代码修改日志
工作区:当前存放项目代码的目录
暂存区:git add把工作区修改的内容添加到暂存区当中
本地仓库:git commit把本地暂存区的修改提交到本地代码仓库分支中(不同分支代表不同的代
码版本)
远程仓库:通过git push把本地仓库的某一个分支上的代码推送到远程仓库的某个分支上
HEAD指针:本地仓库每一个分支上的代码修改都会生成一个commit id信息,HEAD指针指向最
近一次的commit提交,通过这个commit id可以进行版本回退

在这里插入图片描述


2、自己测试

拿到git地址后,在本地通过git clone把远程仓库上的项目代码拉到本地,如下:
在这里插入图片描述
git log
在这里插入图片描述
查看当前master分支修改记录!

将github远程仓库克隆下来,会有两个东西自动创建:

1、一个是origin:

git remote

在这里插入图片描述

给远程仓库mymuduo2起了个名,默认叫origin,origin是仓库名(在git本地标识仓库远程仓库mymuduo2是origin,默认是origin)

在这里插入图片描述
2、git是一个分布式的,自动在本地生成一个仓库!

生成一个本地仓库master,追踪的是远程仓库origin的master分支(origin/master)

注意,现在好像不叫master了,叫main!
在这里插入图片描述
上面main是本地分支,下面origin/main是远程分支!

在这里插入图片描述
在muduo2文件夹中添加main.cpp文件:
在这里插入图片描述

本地目录就是git的工作区:

在这里插入图片描述

git status

在这里插入图片描述
会提示你main.cpp没有追踪

git add main.cpp		--将main.cpp添加到暂存区中
git add .				--将所有git status提示的文件都添加到暂存区中!

在这里插入图片描述
git commit将暂存区的改动提交到本地main分支:
在这里插入图片描述
在这里插入图片描述

git commit将暂存区的改动提交到本地main分支,并添加信息"创建了main.cpp,写了初始代码"

注意: 我们现在位于本地main分支:
在这里插入图片描述

git push origin main	--将本地main分支上的代码推送到远程origin仓库的main分支上

在这里插入图片描述
在这里插入图片描述
想知道你在哪个分支上:

git branch		--查看工作的分支

在这里插入图片描述


此时另一个用户,这里是win10用户要看仓库代码有没有变化时:

git pull

在这里插入图片描述
会将更新的main.cpp代码拉下来了!
在这里插入图片描述
我们在win10电脑修改main.cpp:
在这里插入图片描述
在这里插入图片描述
git stautus:可以看到工作区有改动!

我们可以将工作区的改动提交到暂存区!
在这里插入图片描述

git commit将暂存区的改动提交到本地main分支,并添加信息"实现sort代码"

在这里插入图片描述

将本地的main分支代码推送到远程仓库origin/main分支中!
在这里插入图片描述

git log

在这里插入图片描述

我们在ubuntu上再从远程将代码拉下来:
在这里插入图片描述
发现多了一个.bak文件;

我们在win删除它:
在这里插入图片描述

再在ubuntu上重新拉取下!
在这里插入图片描述
OK的!

注意:

head指针:
在这里插入图片描述

head指针指向当前分支的最后一次修改!可以改到head指针,指向不同的commit ID,即可在不同的版本上进行切换!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

liufeng2023

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值