优秀的编程知识分享平台

网站首页 > 技术文章 正文

开发工程师的工具包之Git(go开发工程师下载)

nanyue 2024-09-27 13:01:54 技术文章 10 ℃

什么是Git

对于开发者来说,git这个工具应该算是刻在DNA里了,简要说,Git就是用于多人开发的代码仓库管理工具

Git可以使你的工程代码存在很多分支,类似于master branch,new feature branch等等。大家可以在各个分支代码灵活切换,当你有一个好点子,你可以checkout一个新分支,并将你的点子付诸实现,然后在该功能合并到你的主线时删除这个分支;或者多个开发者开发一个系统的不同子模块,大家基于自己的角色的曲线,每人新建一个分支,大家互不干扰,总是只包含自己子模块的东西,通过代码评审和测试后,可以合并到主线分支,可见,Git让多人协作开发这个过程变得非常简单,并且它改变了大多数开发人员学习它时的工作方式。

大家既可以用命令行模式(个人推荐),也可以用图形化的GUI,下载路径:Git - Downloads (git-scm.com)

常用的git命令

1. 克隆他人的代码

打开github或gitee,这里面有很多优秀的值得阅读的工程源码,比如plunder_the_xuanyuan_sword:

我们要克隆他的代码首先进行fork,就是把他的代码拷贝到自己的仓库里,方便自己修改和提交,接着就可以利用以下命令拷贝代码:

git clone https://gitee.com/liuxinouc/plunder_the_xuanyuan_sword.git

2. 修改和提交

# 将你的一切修改提交
git add .
# 为这次提交写点备注,类似于"这次提交修复了重启的bug"
git commit -m "Adding files"
# 这一步十分关键,目的是强制拉下这个分支最新代码,防止直接push后将他人代码覆盖
git pull -r
# 将代码提交
git push origin master

3. 查看提交记录

# 查看所有的提交记录
git log 
# 查看某个函数的变更记录
git log -L :nidpsDetectPktsProc:rspackets.c
# 查看某个文件的变更记录
git log rspackets.c
# 查看文件每次提交的diff
git log -p filename     

git提交的一些特殊场景

  1. 我想要拉最新代码,但是我已经在本地修改了一部分代码,一拉就会进入rebase。
# 强制回退版本,三种选其一
git rest --hard HEAD^:回退到上一版;
git rest --hard HEAD^^:回退到倒数第二版;
git rest --hard 3628164:回退到commit id为3628164的版本;

# 拉代码即可
git pull -r

2. 我已经提交了代码的commit,但我想修改commit的内容。

# 会进入修改界面,操作命令类似于vi/vim
git commit --amend

3. 我提交代码后,显示进入rebase。

# 进入到rebase,说明你提交的代码正好和另一个提交的代码发生了重叠,
# 你需要自己去校对,你的代码类似于添加了
func Old() {
<<<<<<< HEAD
=======
    man1.Println("add new func")
>>>>>>> man1
}
# 修改源代码之后
git add .

git rebase --continue

4. 我本地修改了一些代码,但我忘了,我想看看

git diff

5. 单独拉一个自己的开发分支,然后自己单元测试后,合并到主分支master

git checkout -b mybranch
git merge master
git add .
git commit "Adding files"
git push origin mybranch
git checkout master
git merge mybranch

Reference

About - Git (git-scm.com)

Git 五分钟教程 | 菜鸟教程 (runoob.com)

https://www.jianshu.com/p/3d6606517c3a

(38条消息) git checkout -b 的详细讲解_weixin_30614587的博客-CSDN博客

最近发表
标签列表