Git 常用命令
- 默认分类
- 2023-04-25
- 3077热度
- 0评论
一、配置相关
- 检查配置信息:列出所有 Git 配置
git config --list
- 查看所有的配置以及它们所在的文件
git config --list --show-origin
- 查询 Git 中该变量的原始值,它会告诉你哪一个配置文件最后设置了该值
git config --show-origin rerere.autoUpdate
- 获取帮助手册
git help config
- 获得更简明的帮助输出
git add -h
- 设置你的用户名和邮件地址
git config --global user.name "John Doe"
git config --global user.email johndoe@example.com
二、常用命令
基础命令
git add .
git commit -m "..."
git pull --rebase
git push
其他命令
- 查看操作记录
git reflog
- 把hash前六位的commit 应用到现有分支中
git cherry-pick [hash前6位]
- 把多条commit合并到一条
git rebase -i [a6d089177f47bf]
- 基于develop创建一个feature_branch分支
git checkout -b feature_branch develop
- 基于某个远程分支新建本地分支
git checkout -b <BranchName> origin/master
例如:git checkout -b my_branch origin/my_branch
- 把当前分支推送到远程指定分支(不同分支名)
git push origin mcvadvancedSearch:mc-dev
- 将在其他分支上的 commit 修改,移植到当前的分支
git cherry-pick <commitHash>
三、分支相关
查看分支
git branch // 查看本地已有的分支
git branch -a // 查看本地和远程已有的分支
查询分支创建时间
git reflog show --date=iso 'branch_name'
创建分支 本地检出一个新的分支并推送到远程仓库
git checkout -b 新分支名
git push --set-upstream origin 分支名 // 推送本地分支到远程仓库
将远程git仓库里的指定分支拉取到本地(本地不存在的分支)
git checkout -b 本地分支名 origin/远程分支名
- 如果出现提示:
fatal: Cannot update paths and switch to branch 'dev2' at the same time.
Did you intend to checkout 'origin/dev2' which can not be resolved as commit?
表示拉取不成功。我们需要先执行
git fetch
然后再执行
git checkout -b 本地分支名 origin/远程分支名
将本地分支推送到远程仓库(远程仓库没有该分支)
git push origin local_name:remote_name
合并分支
- 当前分支为dev:把prod的内容合并入dev分支
git merge 'prod'
删除分支
git branch -d 分支名
四、commit方法
修改最后一次commit的信息
- 修改 commit 注释信息
git commit -ament
出现修改注释信息的界面, 输入 i 进入修改模式,修改好注释后,按 Esc 键 退出编辑模式,输入 :wq 保存并退出。
注:注释信息一般显示在第一行,窗口下面第一个字符是 # 的内容不需要修改
- 修改作者、邮箱
git commit --amend --author="{username} <{email}>"
例如:git commit --amend --author=“silinchen <silinccc@gmail.com>”
- 撤销上一次commit(删除commit记录、改动的数据回退到暂存区)
git reset --soft HEAD~1
修改某几次commit的信息
- 使用 log 查看提交记录
git log -2 // -2 代表最后 2 条记录
- rebase 需要修改的commit
git rebase -i HEAD~2
// 或者
git rebase -i {commitID} // 例如 git rebase -i d95ddfb
.
.
.
git rebase --continue
注:
HEAD~2 表示最后两条 commit
指定 commit ID 则表示对应 commit 之前的记录
这里需要注意,如果你需要修改某条 commit 信息,commit ID 需要填再前一条 commit 的 ID
执行 rebase 命令后,会出现 reabse 的编辑窗口,窗口底下会有提示怎么操作。
这里把需要修改的 commit 最前面的 pick 改为 edit,可以一条或者多条。
根据提示,接下来同样使用 --amend 进行修改
修改完成后 需要执行 git rebase --continue
撤回已提交的commit(未push到远程)
- 如题,commit之后发现有部分代码不想提交,忘记忽略了,现在还没有push
// -- soft 撤回commit并保留修改的代码
// -- hard 撤回commmit且删除所有修改过的代码 这个慎用奥
git reset --soft HEAD^ // windows下要输入两个^^符号 否则会出现more字符
暂存(不想commit当前分支的改动而切换到其他分支)
1. 暂存操作
git branch // 查看当前分支
git stash // 将本地改动暂存到“栈”界面
git checkout release // 切换到release 分支名
2.取回暂存代码
git checkout dev // 切回到dev分支
git stash show // 显示当前放在栈里的文件
git stash pop // 将刚存放在“栈”中的代码取出来
五、PUSH
强制推送到远程(慎用)
git push -f origin
// 一般使用情景如下:
// 首先查询日志确认要回滚的节点hash值:git log
// 然后执行reset操作 回滚到指定的提交记录: git reset --hard c554e4676584
// 然后执行强制推送(加f参数),推送后,c554e4676584提交记录之后的commit将不在存在:git push -f origin
六、其他
github操作从ssh转成https
- 执行命令
git remote set-url origin "https://git.ziel.cn/webui/eya-ui-new"
- 通过如下命令查看是否更改成功
git remote -v
配置https免输入密码
- 执行命令
git config --global credential.helper store
- 然后你对某个仓库第一次执行push操作的时候,会要求输入用户密码,之后就再也不用了
- 通过store的方式会将你的账号密码以明文的形式存在~/.git-credentials文件里
- 大致长这样:
cat ~/.git-credentials
https://username:password@github.com
解决 git 命令删除远程分支后,本地 git branch -a 仍能看到已删除的分支
- 1.查看当前有哪些该消失还存在的分支(远程没有本地有[未拉取到本地])
git remote prune --dry-run origin
- 2.删除上面展示出来的所有分支(不会删除已经拉取到本地的分支)
git remote prune origin
- 3.验证结果,如果没有输出任何分支信息,说明已经删除完成了
git fetch --prune origin