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:创建并切换 branch- origin/dev:创建远程 origin 的 dev 分支到本地
 
 
- git switch:(需要较新的版本)- -c branchname:创建并切换 branch
- branchname:切换到已有的分支
 
- 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-配置与常用操作