Git操作命令及常见问题

基础

添加到暂缓区

git add .

提交到本地仓库

git commit -m 'message'

暂存

git stash
git stash save <message>
git stash pop
git stash apply <id>

git stash drop <id>

仓库

初始化仓库

git init

克隆远程仓库(所有分支)

git clone https://github.com/menng/learngit.git

克隆远程仓库(指定分支)

git clone -b <branch_name> https://github.com/menng/learngit.git

远程仓库信息

git remote -v
git remote show/add/remove/rename <远程仓库>

替换文件与当前版本保持一致

git checkout -- <filename>

替换当前工作目录与上次提交保持一致(重置)

git reset --hard HEAD 未被加入暂存区的文件还是会存在

分支

查看分支

git branch -a/r/v
git branch -vv 查看本地分支与远程分支关联关系

创建并切换分支

git checkout -b <branch_name>

基于tag创建分支

git branch <new_branch_name> <tag_name>

获取远程分支

git fetch origin

git checkout -b <local_branchname> <remote_branchname>

更新本地分支与远端同步

git pull -p

git remote prune <remote_repo_alias>

git remote prune -n/--dry-run <remote_repo_alias>

删除远程分支

git push origin :<branch_name>
git push origin --delete <branch_name>

覆盖本地当前分支

git reset --hard <branch_name>
eg:
git reset --hard HEAD^1 恢复到上次提交
git reset --hard 重置本地修改
git reset --hard 98d3dde

比较两个分支

git diff <branch_name> <other_branch_name>
eg:
git fetch origin
git diff master origin/master
git diff master dev

比较分支与暂存区

git diff --cached

查看是否有空格等提交

git diff --check

查看所有标签

git tag -n

标签

基于最新提交并创建轻量标签

git tag <tagname>

基于最新提交并创建附注标签

git tag -a <tagname> -m <message>

提交标签到远程

git push origin <tagname>

提交所有标签到远程

git push origin --tags

删除标签

git tag -d <tagname>

删除远程标签

git push origin :<tagname>

历史

查看历史

git log -p -2 显示最近两次提交的差异
git log --stat 显示每次提交的简略统计信息
git log --pretty=oneline 不同的风格展示提交历史
git log --pretty=format:"%h %an %ar - %s" 格式化输出
git log --pretty=format:"%h %an %ar - %s" --graph 图标格式化输出
git log --pretty=format:"%h %an %ar - %s" --graph -5 图标格式化输出最近5次提交

查看文件列表

git log --name-status 显示新增、修改、删除的文件清单

git log --name-only 文件修改列表
git whatchanged 文件修改列表

操作历史

git reflog 记录本地仓库的操作历史。

配置

定义别名

git config --global alias.br branch
git config --global alias.st status
git config --global alias.ci commit

git config --global alias.ck checkout

忽略换行符影响

git config --global core.whitespace cr-at-eol

配置日志别名

git config --global alias.lg "log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit"

常见问题

1、撤销commit并保留之前修改

操作:

git reset --soft HEAD^/HEAD~1/<前一次的commitid>  撤销最近一次commit
git reset --soft HEAD^^/HEAD~2/<前两次的commitid> 撤销最近二次commit 等等

参数说明:

--mixed 不删除工作区改动代码,撤销commit,撤销git add .  (默认参数)
--soft  不删除工作区改动代码,撤销commit,不撤销git add .
--hard  删除工作区改动代码,撤销commit,撤销git add .

2、修改commit注释

git commit --amend 默认进入vim,修改注释完毕后保存即可。

参考

Pro Git book

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值