Git 配置与常用操作
配置
~/.gitconfig
:git 的全局配置文件.git/config
:git 的本地配置文件git config --global user.name "Your Name"
git config --global user.email "email@example.com"
git config --global color.ui true
git config core.autocrlf true
常用命令
git diff
:查看差异 -HEAD -- filename
:查看工作区和版本库里面最新版本的区别git log
:查看日志--abbrev-commit
:仅显示 SHA-1 的前几个字符--graph
:显示 ASCII 图形表示的分支合并历史--pretty=oneline
:一行显示,只显示哈希值和提交说明
git reset
:回退版本--hard HEAD^
:回退到上个版本--hard HEAD^^
:回退到上上个版本--hard hash / tag
:回退到指定版本HEAD filename
:撤销暂存区的修改,重新放回工作区(已 add 但未 commit
git reflog
:查看历史命令git status
:查看状态git add
:把要提交的更改放到暂存区(stage)git commit
:把暂存区的所有更改提交到分支-m
:本次提交的描述
git branch
:查看当前分支branchname
:创建 branch-d branchname
:删除 branch-D branchname
:强制删除 branch(如果分支上有未合并的更改且我们确定要删除该分支时)--set-upstream-to=origin/dev dev
:指定本地 dev 分支与远程 origin/dev 分支的链接
git merge
:如果出现冲突,git 会将冲突的内容复制到当前分支上,且会有标记,删除或修改之后 git commit 即可branchname
:将指定分支合并到当前分支--no-ff
:禁用 Fast forward,这样即使在删除分支后也会保留分支信息
git checkout
:branchname
:切换 branch-- filename
:丢弃工作区中指定文件的修改(未 add 前)-b branchname
:创建并切换 branchorigin/dev
:创建远程 origin 的 dev 分支到本地
git switch
:(需要较新的版本)-c branchname
:创建并切换 branchbranchname
:切换到已有的分支
git rm
:将文件删除并将删除提交到暂存区(恢复的话需要两步,首先撤销暂存区操作 git reset HEAD filename,之后撤销工作区操作 git checkout -- filename)-r dirname
:删除文件夹
git push
: 将 commit 推送到远程仓库-u origin master
:推送到 origin 的 master 分支上,并把本地的 master 分支和远程的 master 分支关联起来,用以简化以后的推送和拉取的命令origin branch
:推送到 origin 的 master 分支上origin tagname
:推送目标 tag 到远程--tags
:推送所有标签
git clone
:克隆 git 仓库,支持多种协议,默认的 git:// 使用 ssh 协议,使用 https 则第一次使用需要输入账号和密码git stash
:将当前工作区存储起来,之后可以恢复list
:列出已存储的工作区apply
:恢复工作区stash@{0}
:指定要恢复的 stash
drop
:删除 stash 的内容pop
:恢复并删除 stash 的内容
git cherry-pick
:hash / tag
:复制一个特定的 commit 到当前分支
git remote
:查看远程库的信息-v
:显示更详细的远程库信息
git pull
:从远程对应分支拉取内容git rebase
:整理提交历史git tag
:查看所有标签v0.0.0
:给当前最新提交的 commit 打上标签hash
:给目标 commit 打上标签-m
:指定说明文字
-d v0.0.0
:删除标签
git show
:tagname
:查看标签信息
创建 SSH 密钥对
ssh-keygen -t ras -C "example@example.com"
私钥位置:~/.ssh/id_rsa
公钥位置:~/.ssh/id_rsa.pub
github ssh keys
gitee ssh keys
Git 同时 push 到两个远程分支
git remote add origin url_one
git remote set-url --add origin url_two
验证:git remote -v
单独 push 其中一个 remote:git push git@domain.com:username/project
https://gist.github.com/bjmiller121/f93cd974ff709d2b968f
https://www.jianshu.com/p/dee791260538
以上为一个 remote 有两个 url 的情况,以下为两个 remote 的情况:
git remote add github git@github.com:username/project
git remote add gitee git@gitee.com:username/project
git push github master
git push gitee master
Git 分支管理
- master 分支仅用来发布新版本
- dev 分支上平常提交代码
- 每个人有自己的一个分支,平时往 dev 分支上合并
参考
- https://www.liaoxuefeng.com/wiki/896043488029600
- http://www.runoob.com/w3cnote/android-tutorial-git-repo-operate.html
- https://git-scm.com/book/zh/v2/
Links: Git-配置与常用操作