Git 常用ming'l

常用命令

# 创建一个本地仓库
git init

# 查看git状态
git status

# 创建ssh key
ssh-keygen -t rsa -C <email>

# 配置ssh
ssh-keygen -t rsa

# 查看远程库信息
git remote <-v>

# 关联远程仓库
git remote add origin <url>

#  删除本地指定的远程地址
git remote remove origin

# 推送到远程仓库 [-u 关联]
git push -u origin master

# 推送当前分支,并在远程创建当前分支
git push --set-upstream origin dev

# 从远程克隆到本地
git clone -b <指定分支名> <远程仓库地址> <本地仓库名称>

# 将文件添加到暂存区
git add <file-name>

# 撤销工作区的更新
git restore <file-name>

# 撤销暂存区的内容
git restore --staged <file-name>

# 将暂存区的内容提交
git commit -m <更新说明>

# 删除文件
git rm <file-name>

# 删除远程文件,不删除本地文件
git rm -r --cached <file-name>
git commit -m <remark>
git push

# 查看当前分支操作记录
git log --pretty=oneline

# 查看所有分支的操作记录
git reflog

# 查看分支合并情况
git log --graph --pretty=oneline --abbrev-commit

# 回滚到指定版本
git reset --hard <commit id>

# 拉取远程代码,并直接与本地合并
git pull
git pull <远程主机名> <远程分支名>:<本地分支名>

# 将远程主机的最新内容拉到本地,不进行合并
git fetch origin master

# 获取最新代码到本地 ,并在master下面创建master1
git fetch origin master:master1

# 删除暂存区文件 
git rm -r --cached .

# 统计文件改动
git diff --stat master origin/master
git diff <local branch> <remote>/<remote branch> 

#  比较本地分支与git 主分支差异情况
git diff <local branch> <remote>/<remote branch>

# 本地与远程的差集 :(显示远程有而本地没有的commit信息)
git log master..origin/master
  • git add -A 提交所有变化
  • git add -u 提交被修改(modified)和被删除(deleted)文件,不包括新文件(new)
  • git add . 提交新文件(new)和被修改(modified)文件,不包括被删除(deleted)文件

branch-分支相关

  1. 主分支
  • master分支:存放随时可供生产环境中的部署的代码
  • develop分支:存放当前最新开发成果的分支,当代码足够稳定时可以合并到master分支上去。
  1. 辅助分支
  • feature分支:开发新功能使用,最终合并到develop分支或抛弃掉
  • release分支:做小的缺陷修正、准备发布版本所需的各项说明信息
  • hotfix分支:代码的紧急修复工作
# 创建分支
git branch dev

# 本地分支重命名
git branch -m <oldbranch> <newbranch>

# 切换分支
git checkout dev

# 创建并切换分支
git checkout -b dev

# 删除分支
git branch -d dev

# 强制删除未合并的分支
git branch -D dev

# 查看本地分支
git branch

# 查看远程分支
git branch -r

# 创建本地和远程分支对应的分支
git checkout -b <branch-name> origin/<branch-name>

# 查看本地和远程的所有分支
git branch -a

# 本地分支和远程分支创建链接
git branch --set-upstream branch-name origin/branch-name

# 合并分支
git merge dev <--no-ff>

# 分支合并时有冲突,中止合并
git merge --abort

# 手动解决冲突后,可通过将冲突文件添加到暂存区告诉git,冲突已解决
git add <file-name>
git commit -m <remark>

# 使用可视化工具解决冲突
git mergetool

stash-工作快照

# 为当前分支创建快照
git stash save <save message>

# 查看已保存的工作快照
git stash list

# 查看改动信息
git stash show stash@{$num} -p

# 恢复指定工作快照内容
git stash apply stash@{$num}

# 删除工作快照
git stash drop stash@{$num}

# 恢复指定工作快照内容,并删除改工作快照
git stash pop stash@{$num}

# 删除所有工作快照
git stash clear

tag-标签相关

注意,标签不是按时间顺序列出,而是按字母排序的。

# 创建标签
git tag <-a <tag-name>> <-m <tag-desc>> <commit id>

# 查看本地all标签 --list
git tag -l

# 查看远程all标签
git ls-remote --tags origin

# 删除标签
git tag -d <tag-name>

# 查看指定标签信息
git show <tag-name>

# 推送本地标签到远程
git push origin <tag-name>

# 一次性推送全部尚未推送到远程的标签
git push origin --tags

# 删除远程标签
git push origin :<tag-name>

# 切换标签
git checkout <tag-name>

alias-别名相关

  • 每个仓库的 Git 配置文件都放在.git/config 文件中
  • global 位置在用户主目录下的一个隐藏文件.gitconfig
# 设置命令别名
git config --global alias.<自定义别名> <具体命令>

# 配置一个 git last,让其显示最后一次提交信息
git config --global alias.last 'log -1'

# log
git config --global alias.lg "log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit"

# co 表示 checkout,ci 表示 commit,br 表示 branch
git config --global alias.co checkout
git config --global alias.ci commit
git config --global alias.br branch

config-配置相关

# 查看Git配置 --list (依次是系统级别、用户级别、仓库级别)
git config -l

# 查看仓库配置(切换到具体目录下)
git config --local -l

# 查看用户配置
git config --global -l

# 查看系统配置
git config --system -l

# 编辑配置文件 --local  --global --system
git config --local -e

# 设置用户邮箱
git config --global user.name <username>
git config --global user.email <email>

# 配置全局字符集编码
git config --global i18n.commitencoding utf-8
git config --global i18n.logoutputencoding utf-8
export LESSCHARSET=utf-8

# 配置全局不自动转换换行符
git config --global core.autocrlf false

# 设置能检测文件名大小写
git config --global core.ignorecase false
上一篇:git 合并两个不相干仓库分支代码


下一篇:解决Git中fatal: refusing to merge unrelated histories