Git开发项目完整流程使用(图文超详解)

前世今生

自2002年开始,林纳斯·托瓦兹(Linus Torvalds)决定使用BitKeeper作为Linux内核主要的版本控制系统用以维护代码。因为BitKeeper为专有软件,这个决定在社群中长期遭受质疑。在Linux社群中,特别是理查德·斯托曼与自由软件基金会的成员,主张应该使用开放源代码的软件来作为Linux内核的版本控制系统。林纳斯·托瓦兹曾考虑过采用现成软件作为版本控制系统(例如Monotone),但这些软件都存在一些问题,特别是性能不佳。现成的方案,如CVS的架构,受到林纳斯·托瓦兹的批评。

2005年,安德鲁·垂鸠(Andrew Tridgell)写了一个简单程序,可以连接BitKeeper的仓库,BitKeeper著作权拥有者拉里·麦沃伊认为安德鲁·垂鸠对BitKeeper内部使用的协议进行逆向工程,决定收回无偿使用BitKeeper的许可。Linux内核开发团队与BitMover公司进行磋商,但无法解决他们之间的歧见。林纳斯·托瓦兹决定自行开发版本控制系统替代BitKeeper,以十天的时间编写出git第一个版本。
在这里插入图片描述

Git是一个分布式版本控制软件,最初由林纳斯·托瓦兹创作,于2005年以GPL许可协议发布。最初目的是为了更好地管理Linux内核开发而设计。应注意的是,这与GNU Interactive Tools(一个类似Norton Commander界面的文件管理器)不同。
git最初的开发动力来自于BitKeeper和Monotone。git最初只是作为一个可以被其他前端(比如Cogito或Stgit)包装的后端而开发的,但后来git内核已经成熟到可以独立地用作版本控制。很多被广泛使用的软件项目都使用 git 进行版本控制,其中包括 Linux 内核、X.Org服务器和OLPC内核等项目的开发流程。

使用

在一个项目开发过程中,我们通常会需要用到 git 作为版本管理工具,下面为具体流程(超详细哦!!)

1、准备工作

首先我们要创建一个代码仓库,本文以github作为代码仓库,编辑器以goland来做演示。

  • 新建好的代码仓库如下图,仓库中有个自动生成的.md文件
    在这里插入图片描述
  • goland编辑器页面,test是个空的文件夹。

2、初始化生成本地仓库

  • 输入 git init 进行初始化,此时文件下会生成一个 .git文件,也是我们的本地仓库。
git init

在这里插入图片描述
这个文件需要到本地文件夹去查看
在这里插入图片描述

3、对目录下做修改操作,这里我们添加一个 text.go 文件

在这里插入图片描述
4、将代码提交到本地仓库

git status //查看文件状态
git add 自己要提交的文件名  //使用 . 为所有更改过的文件提交到缓存区
git commit -m"提交信息" // 提交到本地仓库

5、将本地仓库与远程仓库进行绑定

  • 输入git remote add origin 远程仓库地址(使用git clone克隆下来的代码默认已经进行了远程仓库绑定)
git remote add origin 

在这里插入图片描述

  • 然后我们可以使用 git remote -v 查看我们的远程仓库地址
git remote -v

在这里插入图片描述

6、建立本地分支与远程分支匹配

一般在一个多人的开发项目中,不能把自己代码直接提交到主分支(各个仓库平台主分支名称不同),而是建立一个自己的远程代码分支,然后让自己本地分支跟踪到自己的远程代码分支。

  • 图中cong为自己的远程代码分支

在这里插入图片描述

  • 新建本地代码分支并切换到该分支(要与远程代码分支名称相同)
git checkout -b cong

在这里插入图片描述

  • 查看本地分支
git branch

在这里插入图片描述

  • 将本地分支与远程分支合并
git pull origin main --allow-unrelated-histories

在这里插入图片描述

  • 将本地分支与远程分支关联
git branch --set-upstream-to=origin/cong cong

在这里插入图片描述
这样就把本地分支与远程分支关联上了。

7、提交本地代码到远程仓库

  • 最后 git push提交就好了
git push

在这里插入图片描述

以后修改文件操作就可以直接常规四步了

git status //查看文件状态
git add 自己要提交的文件名  //使用 . 为所有更改过的文件提交到缓存区
git commit -m"提交信息" // 提交到本地仓库
git push //提交远程仓库

猜你喜欢

转载自blog.csdn.net/m0_53328239/article/details/131627298