Git 命令使用分享
基本操作
-
git config --list
显示当前git配置信息 -
git add [filename]
添加文件到暂存区 -
git add .
将当前所有文件存到暂存区 -
git commit -m [message]
提交暂存区到仓库
分支相关
-
git branch
列出所有本地分支 -
git branch -r
列出所有远程分支 -
git branch -a
列出所有本地分支和远程分支 -
git branch [branch-name]
新建分支,但依然停留在当前分支 -
git checkout -b [branch-name]
新建分支,并切换到该分支 -
git checkout [branch-name]
切换到制定分支 -
git checkout -
切换到上一个分支 -
get merge [branch]
合并指定分支到当前分支 -
git branch -d [branch-name]
删除分支 -
git push origin --delete [branch-name]
删除远程分支
git tag 标签
-
git tag
列出所有tag -
git tag [tag]
在当前分支新建一个tag -
git tag [tag] [commit]
新建一个tag在指定commit -
git tag -d [tag]
删除本地tag -
git push origin :refs/tags/[tagName]
删除远程tag -
git show [tag]
查看tag信息 -
git push [remote] [tag]
提交指定tag -
git push [remote] --tags
提交所有tag
查看信息
-
git status
显示有变更的文件 -
git log
显示当前分支的版本历史-
--graph
显示方式可视化 -
--oneline
单行形式展示 -
--stat
显示发生变动的文件 -
-[n]
显示最近n次提交
-
-
git diff
显示暂存区和工作区文件内容对比
远程同步
-
git remote -v
显示当前关联的远程仓库地址 -
git pull
更新远程分支的修改 -
git push
上传本地commit到远程分支 -
git push --force
强行push当前分支到远程仓库
撤销
-
git checkout [filename]
恢复(废弃)暂存区指定文件的修改 -
git checkout .
恢复(废弃)暂存区所有文件的修改 -
git reset --hard [commitID]
重置当前分支的HEAD为指定commit -
git stash
暂存当前未提交的修改 -
git stash pop
取出(恢复)未提交的修改
git rebase
-
git pull [branch-name] --rebase
以rebase方式同步分支
git 分支介绍
- 按日常工作来划分: git 分支类型分六种
- master 生产环境用来发布的主要分支
- develop 开发日常使用的分支
- test 提供测试用的分支
- feature 功能分支,为了开发某种特定功能使用
- release 预发布环境使用的分支
- hotfix 紧急修复问题的分支
git 工作区介绍
- 工作区:项目所在目录;
- 暂存区:暂时保存修改后的文件的区域
- 本地仓库:本地保存文件的地方
- 远程仓库:服务端保存文件的地方
git log 参数
-(n) 仅显示最近的 n 条提交
--since, --after 仅显示指定时间之后的提交。
--until, --before 仅显示指定时间之前的提交。
--author 仅显示指定作者相关的提交。
--committer 仅显示指定提交者相关的提交。
--grep 仅显示含指定关键字的提交
git 别名设置
- 方法
git config --global alisa.name "the operation command"
给出两个我自己配置的例子
- git log-one:
git config --global alias.log-one 'log --pretty=format:"%C(white)%h%Creset %C(white)-%Creset %C(yellow)%cn%Creset %C(white)-%Creset %C(red)%cd%Creset %C(white)-%Creset %C(green)%s%Creset" --date=format:"%Y-%m-%d %H:%m:%S" --graph --decorate --all'
- git log-short:
git config --global alias.log-short 'log --graph --stat --pretty=format:"%C(white)Commit: %h%Creset %n%C(green)Author: %cn%Creset %nDate: %C(auto)%cd%Creset %n %C(red)%s%Creset %C(green)%b%Creset%n" --date=format:"%Y-%m-%d %H:%m:%S"'
- git log-tree
git config --global alias.log-tree 'log --graph --stat --pretty=format:"%C(white)Commit:%Creset %C(white)%H%Creset %n%C(white)Author:%Creset %C(green)%cn%Creset %n%C(white)Message:%Creset %C(yellow)%s%Creset %n%C(white)Date:%Creset %C(white)%cd%Creset %C(red)(%cr)%Creset %C(green)%b%Creset%n" --date=format:"%Y-%m-%d %H:%m:%S" --graph --decorate --all'
image.pnggit log-tree
image.pnggit log-one
网友评论