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插件合并分支