1.常用命令
// 配置远程git版本库
git remote add origin <远端仓库地址> |
// 克隆代码
git clone <远端仓库地址> |
// 从master分支下载代码及快速合并
git pull origin master |
// 从远程库获取代码(默认分支与本地同名)
git fetch origin |
// 上传代码到master分支及快速合并
git push origin master |
// 显示所有分支
git branch |
// 切换分支
git checkout <分支名称> |
// 切换到master分支
git checkout master |
// 查看未提交的代码状态
git status |
// 查看历史提交情况
git log |
// 将文件回复到修改前的状态
git checkout <文件路径> |
// 拉取代码
git pull |
// 添加所有文件
git add . |
// 添加文件
git add <文件路径> |
// 提交代码
git commit -m "描述" |
// 提交时没有新增文件建议使用
git commit -am "描述" |
// 推送代码
git push <远程主机名> <本地分支名> |
// 创建新分支
git checkout -b <新分支名称> |
2.别名 alias
// 创建/查看本地分支
git config --global alias.br="branch" |
// 切换分支
git config --global alias.co="checkout" |
// 创建并切换到新分支
git config --global alias.cb="checkout -b" |
// 提交
git config --global alias.cm="commit -m" |
// 查看状态
git config --global alias.st="status" |
// 拉取分支
git config --global alias.pullm="pull origin master" |
// 提交分支
git config --global alias.pushm="push origin master" |
// 单行、分颜色显示记录
git config --global alias.log="git log --oneline --graph --decorate --color=always" |
// 复杂显示
git config --global alias.logg="git log --graph --all --format=format:'%C(bold blue)%h%C(reset) - %C(bold green)(%ar)%C(reset) %C(white)%s%C(reset) %C(bold white)— %an%C(reset)%C(bold yellow)%d%C(reset)' --abbrev-commit --date=relative" |
3.查看
// 查看状态
git status |
// 查看变更内容
git diff |
// 查看指定文件的修改内容
git diff <文件路径> |
// 查看提交历史
git log |
// 查看指定文件的提交历史
git log -p |
// 查看历史提交情况精简版
git log --oneline |
// 获取指定文件的历史版本记录
git log --follow -p <文件路径> |
// 以列表方式查看指定文件的提交历史
git blame |
4.新增和修改
// 跟踪所有改动过的文件
git add . |
// 跟踪指定的文件
git add <文件路径> |
// 文件改名
git mv |
5.提交
// 提交所有更新过的文件
git commit -m “commit message” |
// 提交时没有新增文件建议使用
git commit -am "描述" |
// 修改最后一次提交
git commit --amend |
// 合并提交
git rebase -i |
6.撤销和恢复
// 删除文件
git rm |
// 停止跟踪文件但不删除
git rm --cached |
// 清除untracked文件
git clean -f <文件路径> |
// 清除目录文件(不包含ignore文件)
git clean -fd <文件路径> |
// 清除目录文件(包含ignore文件,慎用)
git clean -xfd <文件路径> |
// 先查看删除文件,再删除
git clean -f -n <文件路径> |
// 撤消工作目录中所有未提交文件的修改内容
git reset --hard HEAD |
// 撤销到某个特定版本
git reset --hard |
// 撤消指定的未提交文件的修改内容
git checkout HEAD |
// 撤消指定的未提交文件的修改内容
git checkout |
// 撤消指定的提交分支与标签
git revert |
// 退回add过的代码
git reset HEAD |
// 恢复到指定的历史版本
git reset <commit id> |
// 提交后退回,建议使用soft,不会回退已修改的代码
git reset --soft HEAD~1 |
// 提交后退回,会退回到修改前的版本
git reset --hard HEAD~1 |
have diverged解决方法:(不保留本地修改)
git fetch origin git reset --hard origin/<分支名> |
7.推送
// 推送到远端对应的分支
git push |
// 推送到远端指定分支(慎用)
git push origin <分支名称> |
// 强制推送,无论是否冲突,推送本地到远端(慎用)
git push -f |
8.设置
// 设置默认编辑器为vim(git默认用nano)
git config --global core.editor vim |
// 设置大小写敏感
git config core.ignorecase false |
// 设置用户名
git config --global user.name "YOUR NAME" |
// 设置邮箱
git config --global user.email "YOUR EMAIL ADDRESS" |
// 设置换行符自动转换
git config --global core.autocrlf true |
// git 提交时ignore文件
git update-index --assume-unchanged <文件路径> |
// 取消ignore文件
git update-index --no-assume-unchanged <文件路径> |
9.分支与标签
// 显示所有本地分支
git branch |
// 切换到指定分支或标签
git checkout |
// 创建新分支
git branch |
// 删除本地分支
git branch -d |
// 列出所有本地标签
git tag |
// 基于最新提交创建标签
git tag <commit id> |
// -a指定标签名称,-m指定标签说明
git tag -a "v1.0" -m "一些说明" |
// 删除标签
git tag -d |
// 合并特定的commit到dev分支上
git checkout dev |
// 拉取代码
git pull = git fetch + git merge |
10.合并与衍合
// 合并指定分支到当前分支
git merge |
// 取消当前合并,重建合并前状态
git merge --abort |
// 以合并dev分支到当前分支,有冲突则以dev分支为准
git merge dev -Xtheirs |
// 衍合指定分支到当前分支
git rebase |
11.远程操作
// 查看远程版本库信息
git remote -v |
// 查看指定远程版本库信息
git remote show |
// 添加远程版本库
git remote add |
// 删除指定的远程版本库
git remote remove |
// 从远程库获取代码
git fetch |
// 下载代码及快速合并
git pull |
// 上传代码及快速合并
git push |
// 删除远程仓库的标签v1.0
1.先在本地删除想删除的标签 2.然后再将其推送到关联的远程仓库 |
// 上传所有标签
git push --tags/git push origin --tags |
12.打包
// 将master分支打包成file.zip文件,保存在上一级目录
git archive --format=zip --output ../file.zip master |
// 打包v1.2标签的文件,保存在上一级目录v1.2.zip文件中
git archive --format=zip --output ../v1.2.zip v1.2 |
// 打包v1.2标签的文件,保存在上一级目录v1.2.zip文件中
git archive --format=zip v1.2 > ../v1.2.zip |
13.全局和局部配置
// 克隆远程版本库
git clone <远端仓库地址> |
// 初始化本地版本库
git init |
全局配置保存在:$Home/.gitconfig 本地仓库配置保存在:.git/config |
14.远程与本地合并流程
// 初始化本地代码仓
git init |
// 添加本地代码
git add . |
// 提交本地代码
git commit -m "add local source" |
// 下载远程master分支代码
git pull origin master |
// 合并master分支
git merge master |
// 上传代码到master分支
git push -u origin master |
实时更新,不断改进。如有疑问,欢迎私信交流,共同进步。