Git常用命令

以前一直使用GitHub的图像客户的来操作自己版本库的提交和更新。现在感觉效率不高,虽下定决心要在命令行下面操作Git。所以我有必要把平时要使用Git命令整理一份文档出来,从而可以更熟练的使用Git。

基本配置

基础配置

  • 查看配置:git config --list
  • 设置全局用户名:git config --global user.name <用户名>
  • 设置全局邮箱:git config --global user.email <邮箱>
  • 查看全局用户名:git config user.name
  • 查看全局邮箱:git config user.email
  • 设置当前仓库用户名:git config user.name <用户名>
  • 设置当前仓库邮箱:git config user.email <邮箱>
  • 查看当前仓库用户名:git config user.name
  • 查看当前仓库邮箱:git config user.email

远程库

  • 查看远程主机,默认为origin: git remote
  • 查看所有远程主机版本信息:git remote -v
  • 查看制定主机名的远程主机详细信息: git remote show <仓库>
  • 添加远程仓库: git remote add <仓库名> <主机>
  • 删除远程仓库: git remote rm <仓库名>
  • 重命名远程仓库: git remote rename <仓库名> <新仓库名字>
  • 修改远程仓库地址: git remote set-url <仓库名> <仓库主机>

获取帮助

  • 查看帮助: git help config

基本操作

创建Git仓库

  • 将目录初始化为一个Git仓库: git init
  • 拉取远程仓库到本地: git clone git clone https://github.com/disheng54/disheng54.github.io.git

提交修改

  • 提交本地所有修改到暂存: git add .
  • 提交本地文件到暂存: git add <文件1> <文件2>
  • 提交本地某类文件到暂存: git add *.java
  • 提交暂存区文件到服务器上: git commit -m "提交说明"

追加修改

  • 追加提交: git commit --amend -m "提交说明"

撤销修改

  • 撤销一个文件修改: git checkout <文件名>
  • 撤销所有文件的修改: git checkout .
  • 撤销所有文件的修改,同时删除新增文件:git checkout . && git clean -xdf
  • 重置一个文件的修改:git reset HEAD <文件名>
  • 重置到当前版本,重置缓存区和工作区: git reset --head
  • 重置到某个提交,重置缓存区,工作区不变: git reset <commit_id>
  • 恢复到某个提交,重置缓存区和工作区: git reset --head <commit_id>
  • 恢复到某个提交,工作区和暂存区不变: git reset --keep <commit_id>

查看本地状态

  • 查看本地状态: git status

查看提交日志

  • 显示所有提交: git log
  • 显示所有提交,仅显示hash和message:git log --oneline
  • 显示某个用户的提交: git log --author="username"
  • 显示提交日志和每次提交的文件: git log --stat
  • 显示显示文件的每次提交:git log -p <file>
  • 显示文件的修改人和时间:git blame <file>
  • 显示最近的两次更新: git log -2
  • 显示最近几次的提交: git reflog
  • 搜索提交: git log -s <关键字>
  • 显示所有提交过用户和次数: git shortlog -sn

比较

  • 暂存区和工作区的差异: git diff
  • 暂存区和工作区某个文件的差异: git diff filename
  • 暂存区和上一个commit的差异: git diff --cached
  • 暂存区和上一个commit的某个文件的差异: git diff --cached
  • 工作区和当前分支最近的commit的差异: git diff HEAD
  • 查看某两个提交之间的差异: git diff <commit1> <commit2>
  • 查看某两个分支之间的差异: git diff <branch> <branch>
  • 查看当前分支和某个分支的差异: git diff <branch>

删除文件

  • 删除文件:git rm <文件>
  • 删除暂存或已提交的文件:git rm --cached <文件>
  • 删除暂存或者已提交的目录: git rm -r --cached <文件>

文件暂存和恢复

这个在切换分支的时候经常需要的一个操作。

  • 暂存文件: git stash
  • 恢复暂存最近的一个暂存: git stash apply stash@{0}
  • 恢复最近的一个暂存: git stash pop 不推荐使用,还是建议使用apply方式恢复暂存
  • 恢复暂存最近的第n个暂存: git stash apply stash@{n-1}
  • 删除最新的一个暂存: git drop

分支操作

基本分支管理

  • 查看当前分支: git branch
  • 查看所有分支: git branch -a
  • 查看所有的远程分支: git branch -r

创建分支

  • 创建分支: git branch <分支名字>

切换分支

  • 切换到另外一个分支: git checkout <分支名字>

删除分支

  • 删除一个本地分支: git branch -d <分支名字>
  • 强制删除一个本地分支: git branch -D <分支名字>
  • 修改服务器地址:git branch origin :<分支名字>

fetch操作

  • 获取远程主机上所有的提交: git fetch <仓库名>
  • 获取远程主机上一个分支的提交: git fetch <远程主机名> <分支名>
  • 从远程分支更新到本地并在此基础上生成一个新的分支: git checkout -b <新分支名字> <远程主机名字>/<远程分支名字>
  • 在当前的本地分支上合并远程分支: git merge <远程主机名>/<分支名字>
  • 在当前的本地分支上合并远程分支: git rebase <远程主机名>/<分支名字>

pull操作

取回远程主机一个分支的更新,然后与本地的分支合并, 如果是与本地的当前分支合并可忽略:
git pull <远程主机名><远程分支名字>:<本地分支>

push操作

将本地分支的内容提交到远程分支上, 如果要提交到的远程分支和本地分支有跟踪关系就可省略:
git push <远程主机名> <本地分支名字>:<远程分支名字>

标签

  • 给当前标签创建标签: git tag <tagName>
  • 给指定提交创建标签: git tag -a <tagName> -m <tag message> <commit-id>
  • 查看标签: git tag
  • 显示标签: git show <tagname>
  • 推送标签到服务器: git push origin <tagname>
  • 推送所有标签到服务器: git push origin --tags
  • 删除本地标签: git tag -d <tagname>
  • 删除服务器上的标签: git push origin :refs/tags/[tagName]
  • 新建分支指向一个提交: git checkout -b <branchname> <tagname>

高级操作

将一个提交重新提交到另外一个分支上

git cherry-pick <commit id>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值