【git】不同场景下常用git总结

git

主要记录一下git的实践原理,根据不同场景使用对应的git命令。

使用原理

git分支

git通过分支来管理代码。分支可以理解为提交历史中指向特定提交的指针。

git仓库通常有一个默认分支(主分支)master/main。为了更好管理代码,就可以创建不同分支来开发,防止对同一份代码进行开发一直有冲突。在后期合并开发时可以统一处理冲突。(只要是不同人对同一份代码进行开发,总是会有冲突的,解决就行,不用抗拒)

不同工作区域

在使用git管理代码时,主要有这么几个区域:工作区域,暂存区,储藏区,本地仓库以及远程仓库。

1.工作区(workplace): 即我们开发的区域。

2.暂存区(stage): 一个缓冲区域,修改完的代码在提交之前要放到暂存区,再提交到仓库。这个缓冲的作用 (我现在的理解)

(1)可以选择性的提交更改,可以将自己想要提交的代码放到缓冲区,再进行提交同时还能保留暂不想提交的更改。

(2)在提交之前可以有这个区域,查看将要提交的更改,避免出错。

(3)可以将多次的提交代码分组,版本管理的时候逻辑清晰,便于管理。

3.储藏区(stash): 一个小仓库,可以临时保存对代码的更改。

在切换分支或者做其他任务的时候,将当前更改先放到仓库,是一个比较独立的区域。

场景

场景一

在工作区域对一个分支进行开发的过程大致是:先将远程仓库中分支的最新代码获取到本地分支,在本地仓库进行开发后,将修改后的代码先暂存提交到本地仓库,在将本地仓库代码推送到远程仓库。

bash 复制代码
# 1.拉取分支最新的代码
git pull  

# 2.将修改暂存
git add .  # 所有修改
git add path/to/file # 暂存特定文件

# 3.将暂存代码提交到本地仓库
git commit -m '提交信息'

# 4.将本地仓库推送到远程仓库
git push

场景二:从分支a拉取分支b进行开发

bash 复制代码
# 1. 将当前切换到分支a
git checkout a

# 2.在分支a下新建分支b
git branch b

# 3.切换到分支b
git checkout b
### 结合2,3两个代码可以通过以下命令
git checkout -b b

切换分支还可以用switch,相应代码如下

bash 复制代码
git switch a # 切换到a分支
git switch -c b # 在当前分支创建并切换到新分支

场景三:将分支a合并到分支b

分支a中对代码进行了改动,需要将这些改动都同步到分支b上

bash 复制代码
# 1.切到分支b
git checkout b

# 2.将分支a合并到分支b(当前分支)
git merge a # 该命令可能后有冲突,手动更改

或者通过cherry-pick,在分支a上有一些改动并提交到仓库中该提交会有相应的哈希值

bash 复制代码
# 切换到分支b
git checkout b
# 将分支a上的提交commit1合到分支b
git cherry-pick commit1_hash_value

场景四:本地代码与远程仓库建立连接

1.首先在github或者其他平台建立一个仓库(仓库名以repo_name为例)

2.在workplace操作,命令操作的路径为代码文件夹路径

bash 复制代码
#1.初始化仓库:将本地代码git化
git init

#2.将所有当前文件夹下的代码暂存
git add .

#3.将所有的代码提交到本地仓库
git commit -m "提交信息"

#4.建立连接之前要设置一下用户名与邮箱
#(如果全局设置过了,可以不用再次设置了)
git config --global user.name "username"
git config --global user.email useremail@qq.com # 这边邮箱好像有引号没引号都可以

# 与远程仓库建立连接
git remote add origin '远程仓库的地址'
git push -u origin master

###
-u参数是--set-upstream的简写,它将本地分支与远程分支关联起来。通过使用-u参数,你可以在将来的git push命令中省略远程分支的名称。
origin是远程仓库的名称。在典型的情况下,远程仓库的名称为origin,但也可以是其他名称,具体取决于你的配置。
master是要推送到远程仓库的本地分支的名称。在这种情况下,它表示将本地的master分支推送到远程的master分支。
###

git 路漫漫...

相关推荐
晓理紫4 小时前
使用git lfs向huggingface提交较大的数据或者权重
git
我不是程序猿儿5 小时前
【GIT】sourceTree的“当前分支“,“合并分支“与“检出分支的区别
git
_OLi_12 小时前
IDEA中新建与切换Git分支
java·spring boot·git
PyAIGCMaster16 小时前
ubuntu下安装 git 及部署cosyvoice(1)
git
维__kxs766717 小时前
小程序 + AI 自动直播:一部手机开启抖音挂载小程序流量主变现之旅
git·eclipse
爱吃土豆的马铃薯ㅤㅤㅤㅤㅤㅤㅤㅤㅤ1 天前
GIT GUI和 GIT bash区别
开发语言·git·bash
zhuyan1081 天前
【git】使用记录
git
KrisZhang101 天前
Git分支
git·1024程序员节
孤影&碧空1 天前
书生大模型第三关Git 基础知识
git
code .1 天前
git使用的一般流程
git