git 常用操作命令
1. 修改 提交用戶名和邮箱
- 修改当前项目的用户名和邮箱地址
git config user.name "username"
git config user.email "email"
- 修改全局用户名和邮箱地址
git config --global user.name "username"
git config --global user.email "email"
- 查看git用户名和邮箱地址命令
git config --global user.name
git config --global user.email
正常情况下上面命令能解决问题
碰到的问题当改变用户名时,报错误提示
$ git config --global user.name *******
warning: user.name has multiple values
error: cannot overwrite multiple values with a single value
Use a regexp, --add or --replace-all to change user.name.
这里 考虑用你最新的改的用户名替换
git config --global --replace-all user.email "输入你的邮箱"
git config --global --replace-all user.name "输入你的用户名"
然后查看配置信息
git config --list
2. git 提交数据到本地暂存区
git add -u <==> git add –update
提交所有被删除和修改的文件到数据暂存区
git add .
提交所有修改的和新建的数据暂存区
git add -A <==>git add –all
3. 提交绕过钩子
git commit -m "feat: 添加" --no-verify
4. 回退版本
git reset --hard 7ee5305f1e1e0f66c7d69666ff7054fc6e309464
(撤销并舍弃版本号之后的提交记录)慎用
git revert
:撤销某个提交,做反向操作,生成新的commitId,原有提交记录保留。git revert commitId
5. git 命令实现本地存储
git stash save "save message"
:执行存储时,添加备注,方便查找,只有 git stash 也可以,但查找不方便
git stash list
:查看 stash 了哪些存储
git stash show
:显示做了哪些改动
git stash apply
:应用某个存储,但不会把存储从存储列表中删除,默认使用第一个存储,即 stash@{0} , 如果要使用其他某一个,git stash apply stash@{$num}
git stash pop
:命令恢复之前缓存的工作目录,将缓存堆栈中的对应 stash 删除,并将对应修改应用到当前的工作目录下,默认第一个 stash,即 stash@{0},如果要应用并删除其他 stash,
命令:git stash pop stash@{$num},比如应用并删除第二个:git stash pop stash@{1}
- 解决 Git 报 error unknown switch e‘ 错误
- vscode 中 PowerShell 花括号被认为是代码块执行标识符,想要正常使用,可用反引号 进行转义 ,如 git stash pop stash@
{0
}
git stash drop
:删除最近的一次 stash
git stash drop stash@{$num}
:丢弃 stash@{$num} 存储,从列表中删除这个存储
git stash clear
:删除所有缓存的 stash
6. git 命令删除本地分支
git branch -d "分支名称"
: 比如 git branch -d yuecheng_yanshi3.0 (会在删除前检查merge状态)
git branch -D “分支名称” (是 git branch --delete --force 的简写,会直接删除)
git push origin --delete【branch_name】
: 删除远程分支
(有时候在 git 仓库删除了分支以后,vscode 本地还是能看到远程分支,需要先清除远程分支的本地缓存:git fetch -p origin)
7. git 命令更改本地当前分支名称
git branch -m "旧分支名称" "新分支名称"
:修改本地分支名称
git branch -m "新分支名称"
:如果当前分支是 yanshi,执行命令 git branch -m xxx_yanshi3.0,则当前分支名称会变为 xxx_yanshi3.0
git push --set-upstream origin "新分支名称"
:将新分支推送到远程
8. git 查看分支
git branch
查看本地分支
git branch -r
查看远程分支
git branch -a
查看所有分支(包括本地和远程分支)
9. git 合并分支(比如从 dev 合到 maseter )
- 首先切换到 master 分支上: git checkout master
- 多人开发需要先 pull 下: git pull origin master
- 把 dev 分支代码合并到 master 上 :git merge dev
- 执行提交命令:git push origin master
10. git 从 master 分支创建新分支
- 初始化项目后,查看仓库所有分支 git branch -a
- 使用命令 git checkout master,表示切换到master 分支,并git pull 拉取最新代码
- 由于所在的分支为master ,使用命令 git checkout -b dev ,dev表示基于当前分支 master 创建的分支
- 将新创建的分支推送到远程仓库,命令为 git push origin dev
11. git 分支修改名字
假设分支名称为oldName,想要修改为 newName
- 本地分支重命名(没有推送到远程)
git branch -m oldName newName
- 远程分支重命名(已推送远程-假设本地分支和远程对应分支名称相同)
- 重命名远程分支对应的本地分支
git branch -m oldName newName
- 删除远程分
git push --delete origin oldName
- 上传新命名的本地分支
git push origin newName
- 把修改后的本地分支与远程分支关联
git branch --set-upstream-to origin/newName
12. 同项目下,将一个分支的某一个 git 提交点转移到另一个分支 :git cherry-pick
同项目下,将代码提交到了不对的分支,这个时候希望把这个提交点能再正确的分支上展示,使用 git cherry-pick 【你在其它分支的交点的哈希值】,如图中所示,切到提交的分支,直接 VScode 在 Git Graph 中找到该提交点,拿到哈希值
这个时候切回正确的分支,直接 cherry-pick 下即可,这个时候发现本地代码已经改动,需要重新提交
git cherry-pick fd90905bcf1440b8989072ea4ff542773ca0dbd2