git 命令操作手册大全

# 常用的 git 命令操作

Desc: .git 是工作区的根目录,通过.git 定位版本库,shell 命令和 Linux 中一样。pull = fetch + merge,cat .git/config查看本地分支和远程分支的对应关系、远程分支是否 tracking。

基础使用

git config --list ##显示git配置文件的内容
git config <section>.<key> ##读取某个配置的键值
git config <section>.<key>  <value> ##更改或设置某个配置的键值
git config --global --unset <section>.<key> ##取消删除全局配置key(不加--global参数则编辑当前项目配置)
git config --global --edit ##编辑全局配置(不加--global参数则编辑当前项目配置)
alias <command>='<value>' ##设置指令的别名,不带任何参数仅显示所有设置的别名
unalias <command> ##删除某个指令的别名
e.g. alias showdir='git rev-parse --show-prefix' ##别名showdir
 alias #查看
 git config --global alias.ci commit ##别名git ci
 git conig --global --list ##查看
git clone ##从远程仓库中检出项目(默认定位到master分支)
git clone -b <branchName> git地址 #指定分支clone
git clone git地址 [myDirName] #clone时指定项目的目录名称
git branch -a ##查看所有分支
git branch -r ##查看远程分支
git fetch -p 或 git fetch origin --prune 或git remote prune origin ##从远程拉取所有信息,更新远程分支列表
git push REMOTE '*:*'  或 git push REMOTE --all ## 要推送所有分支,请使用(用远程的名称替换REMOTE,例如“origin”)
git push <远程主机名> <本地分支名>:<远程分支名>
git push origin_git lasted:master  ## 将本地lasted分支推送到远程origin_git/master分支【可在不切换分支的情况下进行分支合并】
git pull <远程主机名> <远程分支名>:<本地分支名>
git pull origin next:master ##要取回origin主机的next分支,与本地的master分支合并
git branch -D localBranch_name #删除本地分支
git branch -m old_local_branch_name new_local_branch_name  #重命名本地分支
git push origin --delete <branchName> #删除远程分支
git checkout 分支名 ##切换到本地其他分支
git status [-s]  ##查看本地工作区的文件状态(和远程仓库中文件对比的差异)
git diff ##工作区和暂存区的文件差异对比
git diff HEAD ##工作区和版本库中的文件差异对比
git diff --cached | --staged ##暂存区和版本库中的文件差异对比
git grep 字符串 ##显示匹配指定字符串的文件
git rev-parse --git-dir ##显示版本库.git目录所在的路径
git rev-parse --show-toplevel ##显示工作区的根目录(即.git所在目录)
git rev-parse --show-prefix ##显示相对于工作区根目录的相对目录

git reset HEAD ##暂存区的目录树被master分支指向的目录树替换,工作区不受影响
git checkout .或git checkout -- <file> ##用暂存区的所有文件或指定的文件替换工作区的文件(注意:会清除工作区中未添加到暂存区的改动)
git checkout HEAD .或git checkout HEAD <file> ##用HEAD指向的master分支中的全部或部分文件替换工作区和暂存区中的文件(注意:会清除工作区和暂存区中的改动)

Tag 标签操作

git tag -a v0.1.2 -m “0.1.2版本” #创建标签
git tag -a v0.1.1 9fbc3d0 #补打标签,9fbc3d0 是commit的version号
git tag -l ['v1.8.5*'] #[模糊]查询所有Tag
git tag -d v0.1.2 #删除本地标签
git show v0.1.2 #查看标签详情
git push origin --tags #推送所有本地tag到远程
git push --follow-tags #follow-tags参数会使得 commit 以及与之相关的标签(注意,不是所有的标签)一起推送
git push origin v0.1.2 #推送标签至远程仓库(git push不会推送标签,需要显示操作)
git push origin --delete tag v.0.1.2 #删除远程标签
git目前也没有提供一个直接的命令和参数选项可以删除本地的在远程已经不存在的tag(我目前是没找到有关这类tag问题的git命令~~,有知道的同学可以告知我下,互相进步)
git tag -l | xargs git tag -d #删除本地所有tag
git fetch -p #拉取远程所有分支和tag信息,并更新到本地```

命令行 commit 操作

git commit -a ##慎用,对本地所有变更的文件执行提交操作(包括修改和删除,但不包括未被版本库跟踪的文件)
git add  <fileName> ##跟踪新文件(将工作区的改动文件添加到暂存区)
git add -p [或--patch] ##GUI遍历所有改动文件,根据需要将改动的代码块添加到跟踪列表中
git commit -m <commment>  ##添加注释
git push ##同步到远程git仓库
git rm --cached <file> ##从当前跟踪列表移除文件,工作区不受影响
git commit --amend ##修改提交过得注释信息

Git push orgin master ##将改动代码同步到远程服务器上(将改动代码同步到远程仓库的分支中)

查看提交记录 git log 和 git reflog

git log 可查看所有提交过的版本信息,git reflog 可查看本地所有分支的所有操作记录(包括已删除的 commit 记录和 reset 记录)

git log <file>      # 查看该文件每次提交记录
git log -p <file>   # 查看每次详细修改内容的diff
git log -p -2       # 查看最近两次详细修改内容的diff
git show <id>     #查看某次提交的文件差异信息,id至少提供前面六个字符
git merge branch_name #将分支branch_name上的代码合并到当前分支中(和git rebase branch_name效果一样)
stash缓存改动代码
git stash list #查看缓存列表
git stash save ‘备注信息’ #将工作区所有改动缓存到当前分支中
git stash apply stash@{0} #将stash@{0}缓存应用到当前分支中(不删除这个缓存历史)
git stash pop #将最新的缓存应用到当前分支中(并删除这个缓存历史)

PS: stash 缓存适用于临时切换分支时缓存本地改动代码

解决.gitignore 中被列举的文件仍然被 git 跟踪的问题

.gitignore 只能忽略当前没有入库的文件(即对已经入库跟踪的文件无效),对已经入库的文件取消跟踪,执行

  1. git rm --cached file,再提交就可以了。
  2. git rm file #删除本地文件并取消 git 跟踪
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值