【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 路漫漫...

相关推荐
fpcc20 分钟前
工具使用—git diff命令分析说明
git·工具
console.log('npc')1 小时前
Git 删除指定提交记录操作指南
git
随风丶飘1 小时前
[特殊字符] 告别“update“和“fix bug“——Smart Git Commit LLM 让 AI 帮你写专业的 Git 提交信息
人工智能·git·bug
yanlaifan1 小时前
git clone时候指定换行符
git
小小安于乱6 小时前
解决IDEA的git插件pull代码冲突但右下角不提示消息问题
java·git·intellij-idea
ITKEY_8 小时前
git 命令行操作回退到指定版本
git
New_Horizons66610 小时前
Git 操作(使用git-commit-template)
git
慕容引刀13 小时前
或许你真的需要这个Git神器:让团队提交文案终于对齐了
人工智能·git·vscode·自然语言处理·github
jjh+++(求关注版)13 小时前
git-命令速查清单
git
yanlaifan1 天前
git版本管理工具中的回车换行转换逻辑
git