git的一些使用场景

一. git本地新建分支推到远程仓库并关联

1. 本地新建 dev 分支并切换到该分支

git checkout -b dev

## 相当于执行了下面两条指令,新建分支并切换分支
git branch dev
git checkout dev

2. 将本地新建分支 dev 推送到远程仓库 dev 分支

git push origin 本地新建分支名称 : 远程仓库新建分支名称

git push origin dev:dev

这个时候本地新建的分支还没有和远程新分支建立关联关系,需要执行 git --set-upstream origin dev来实现关联

3. 这个时候开始本地新分支和远程仓库新分支建立关联关系

## 建立关联关系
git push --set-upstream origin dev

4. 查看是否关联成功:查看本地分支与远程仓库分支的关联关系

git branch -vv

二. git提交的一些命令

1. git add 的命名:将本地代码提交到暂存区

(1)提交所有的 被修改新建文件 到暂存区

git add . 

(2)提交所有 被修改 的和 被删除 文件到暂存区

当我们删除一个文件后,执行git add -u命令,发现删除的文件也放在暂存区了,避免我们文件删错了还能恢复

git add -u 

## 全等于
git add -update

(3)提交所有 被修改被删除被替换新建文件 到暂存区

当我们把项目中的a.js文件换为b.js文件,执行过该命令后,执行git status查看状态,控制台会有 a.js --> b.js

git add -a 

## 全等于
git add -all

4. git commit 将暂存区的改动提交到本地的版本库,每次执行git commit 都会在本地版本库生成一个commit-id

(1)常用的 -m 可以直接输入后面的message,如果没有是会打开一个vim的编辑器用来输入message (简要说明我们本次提交的是什么功能)

git commit -m "提交信息"

(2)当我们提交了一版代码,并且推到远程仓库了,然后发现有一个小的更改,在代码没有合并之前,需要更改一下再次提交,这个时候就可以追加提交

## 代码调整过后,提交到暂存区
git add .

## 追加提交到上一次commit的版本
git commit --amend

## push到远程仓库
git push origin HEAD:refs/for/dev

(3)查看git commit的一些其他指令

git commit --help

5. 提交到暂存区的文件发现提错了,怎么撤销

git reset HEAD "文件名称"

6. 撤销git commit

## 软撤销 就是不删除工作空间改动代码,只是撤销commit 不撤销git add
git reset --soft "commit-id"   

## 撤销本次修改代码,撤销commit提交
git reset --soft head^ 

## 硬撤销 本地代码会直接替换为指定撤销到的版本 删除工作空间改动代码,撤销git commit git add, 慎用
git reset --hard "commit-id"

## 不删除工作空间改动代码,撤销commit 并且撤销git add
git reset --mixed "commit-id"

7. git commit后git pull 代码后发现代码冲突

## 修改完冲突文件后
git add .

git rebase --continue

git commit

git push 

8. 合并分支的时候,可能某一次提交了其他模块的代码(假如commit-id为1001011),但是开发不知道,后续还提交了多次,等到上线发现问题,只撤销这个commit-id为1001011 的提交怎么实现

## 撤销某次提交而存在,这个命令只针对撤销一个普通提交
git revert commit-id

## 针对merge的提交,git撤销并不知道我要撤消哪次提交
## 参数-m指定我们要撤销的哪个提价,从左往右,从一开始数
git revert commit-id -m 1
## 接着解决冲突
git add .
git commit -m "message"

git revert commit-id -m 2
##接着解决冲突
git add .
git commit -m "message"
git push

 

### Git 命令使用场景及其示例 #### 场景一:合并分支 (Merge) 当开发团队成员完成各自的功能模块后,通常会通过 `git merge` 将这些功能集成在一起。此操作会在目标分支的历史记录中创建一个新的提交节点来表示这次融合。 ```bash # 切换至主干分支并拉取最新更改 $ git checkout main $ git pull origin main # 合入特性分支feature_branch的内容到当前分支main上 $ git merge feature_branch ``` 如果在此过程中遇到冲突,则需先解决冲突后再继续: - 使用 `git status` 查看哪些文件存在冲突; - 编辑有冲突的文件解决问题; - 添加已修改过的文件到暂存区; - 完成合并且提交变更[^2] #### 场景二:变基 (Rebase) 相比于直接合并,有时更希望保持线性的历史日志结构,在这种情况下可以采用 `git rebase` 。它允许开发者把本地未推送的改动重新定位到另一个最新的起点之上。 ```bash # 首先切换回要更新的基础分支 $ git checkout base_branch # 更新基础分支上的代码库状态 $ git fetch origin && git reset --hard origin/base_branch # 返回工作分支work_branch, 开始基于新的base_branch重播commit $ git checkout work_branch $ git rebase base_branch ``` 如果有任何冲突发生,同样按照上述提到的方法处理直至全部解决完毕之后才能成功结束整个过程。 #### 场景三:从远程获取特定分支 (Pull Specific Branch) 对于某些项目而言,可能只关心某几个指定分支的变化而不是所有内容;此时可以通过精确指明源路径与目的路径的方式来进行同步。 ```bash # 从名为origin的远端服务器pull下来remoteBranch名称对应的分支数据,并将其映射为本地branchName分支 $ git pull origin remoteBranch:branchName ``` 这有助于减少不必要的网络传输量同时也简化了版本控制系统内的视图复杂度[^3]。 #### 场景四:全局配置个人信息 (Global Configuration Settings) 为了方便管理和维护多个项目的贡献者身份信息,建议一开始就做好全局级别的设定。 ```bash # 设置用户名字和邮箱地址作为默认值应用于所有的repo里 $ git config --global user.email you@example.com ``` 另外还可以利用其他选项来自定义编辑器偏好、别名等功能以提高工作效率[^5]。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值