> 技术文档 > Git实用技巧(工作笔记一)_自己的分支怎么推送给远程master

Git实用技巧(工作笔记一)_自己的分支怎么推送给远程master


一、常见问题及技巧

1、保存当前修改

场景:当需要切换分支处理紧急任务,但当前分支修改未完成不能提交时;

方法:git stash 将工作目录和暂存区的修改保存到堆栈​(临时存储区),并将工作区恢复到上次提交的状态; git stash pop 将存储的修改恢复到当前工作目录,并自动删除对应的 stash 记录;

2、远程分支与本地分支关联(实现git push/pull 无参数操作)

场景一:远程已有分支,本地没有,需要创建本地分支并跟踪远程分支

方法1:git checkout --track origin/ 

方法2:git checkout -b origin/

场景二:远程和本地都没有分支,需要创建本地分支并推送远程并跟踪远程分支

方法:git push -u origin   

场景三:远程和本地都有的分支,需要关联

方法1:git branch -u origin/  # 设置当前分支的上游

方法2:git branch --set-upstream-to=origin/   # 设置指定分支的上游

验证与远程分支的关联:git branch -vv

3、修改最后一次提交信息

场景:当git commit 后,发现提交信息写错了,需要更改;

方法:git commit --amend打开编辑窗口,按i键进入编辑状态,修改好后,按esc键退出编辑状态,:wq保存并退出,git log可以看出最后一次提交的信息已经修改了;

简洁写法:git commit --amend -m \"New message\"

4、撤销工作区的更改

场景:熟悉项目代码时临时加了一些debugger、console.log,用完后恢复;

# 撤销某个文件
git checkout --  

或 git restore

# 撤销所有文件
git checkout -- .  (简写:git checkout .)

或 git restore .

5、撤销暂存区的更改

# 撤销某个文件到工作区
git restore --staged

# 撤销所有文件到工作区
git restore --staged .

6、版本回退

git reset --soft HEAD~1  # 撤销到暂存区,保留工作区改动

git reset --hard HEAD~1 # 彻底删除最后一次提交的所有改动(慎用!会丢失代码)

git push --force (简写:git push -f)

强制推送,本地回滚后,本地落后远程版本,push推不上去,如确实需要推送远程,需强制推送(慎用!)

git push --force-with-lease

更安全的替代方案,如果远程分支在你上次拉取后有更新,--force-with-lease 会拒绝推送,避免意外覆盖他人工作(慎用!)

git revert

生成一个新的提交来撤销指定提交的改动(撤销改动,新的提交,历史不变)

二、命令

1、基本配置

# 设置全局用户名
git config --global user.name \"你的名字\"

# 设置全局邮箱
git config --global user.email \"你的邮箱\"

# 查看所有配置项
git config --list

# 查看全局配置
git config --global --list

# 设置全局凭据管理器
git config --global credential.helper manager

# 移除全局凭据管理器
git config --global --unset credential.helper

# 查看凭据
Windows​:打开“控制面板” → “用户账户” → “凭据管理器” → “Windows凭据”

SHH协议:

# 生成 RSA 密钥
ssh-keygen -t rsa

# 获取 RSA 公钥内容
cat ~/.ssh/id_rsa.pub

2、本地库

# 初始化新仓库
git init

# 克隆现有仓库
git clone

# 查看工作区状态
git status

# 添加单个文件到暂存区
git add

# 添加所有修改文件
git add .

# 提交暂存区内容
git commit -m \"提交说明\"

# 修改最近一次提交(修正提交信息或内容)
git commit --amend

# 显示最后一次提交信息
git show

# 查看提交历史
git log

# 查看提交历史(简洁版)
git log --oneline

# 查看提交历史(图形化)
git log --graph

# 查看某文件修改历史
git blame

# 撤销工作区修改
git checkout --

# 撤销暂存区修改(取消add)
git restore --staged 

# 恢复文件到指定提交版本
git restore --source= --

# 撤销最近一次提交(保留修改)
git reset --soft HEAD~1

# 完全撤销最近提交(删除修改)
git reset --hard HEAD~1

# 保存修改
git stash

# 恢复修改
git stash pop

-- 分支管理 --

# 创建新分支
git branch

# 切换分支
git checkout

# 创建并切换分支
git checkout -b

# 查看所有分支
git branch -a

# 删除分支
git branch -d

# 强制删除未合并分支
git branch -D

# 重命名分支
git branch -m

# 合并分支到当前分支
git merge

-- 标签管理 --

# 创建轻量标签
git tag v1.0.0

# 创建带注释标签
git tag -a v1.0.0 -m \"Release version 1.0.0\"

# 查看所有标签
git tag

# 删除标签
git tag -d v1.0.0

# 查看标签的详细信息
git show v1.0.0

-- 差异比较 --

# 比较工作区和暂存区
git diff

# 比较暂存区和最新提交
git diff --staged

# 比较两个分支
git diff branch1..branch2

# 比较特定文件历史版本
git diff commit1 commit2 --

3、远程库

# 克隆仓库(默认别名 origin)
git clone  

# 克隆指定分支          
git clone -b  

# 拉取代码
git pull origin master

# 推送代码
git push origin master

# 推送并关联远程分支
git push -u origin 

# 创建本地分支跟踪远程分支
git checkout --track origin/

# 关联远程分支
git branch --set-upstream-to=origin/ 

# 验证与远程分支的关联
git branch -vv

三、vscode

1、克隆Git仓库

2、基本操作

3、分支

创建并切换分支

将新分支推送到远程仓库

Git Graph插件合并分支

4、实用插件推荐