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

相关推荐
AlbertS1 小时前
记一次推送lfs失败不能迁移git仓库到新的gitlab的问题
git·ai·gitlab·lfs·rejected
Eternity_GQM2 小时前
【Git入门】
大数据·git·elasticsearch
kikikidult3 小时前
GitHub的使用(二)——一次完整 Git 上线流程记录
git·github
茉莉玫瑰花茶3 小时前
Redis 持久化
redis·git·github
KaneLogger14 小时前
OpenCode 操作手册
git
木子小喵14 小时前
通俗讲解Git安装每一步!!
git
IOT那些事儿15 小时前
TortoiseGit拉取开源子仓库失败
git·ssh·tortoisegit·submodule
不想看见40416 小时前
Git的多种仓库选择与推荐
git
脆皮炸鸡75521 小时前
Linux开发工具~~~版本控制器Git以及调试工具GDB
linux·服务器·开发语言·经验分享·git·学习方法
console.log('npc')1 天前
团队协作提交自己的功能
git