Git 常用命令

# 查看全局配置
git config --global --list

# 设置用户名和邮箱
git config --global user.name "yourname"
git config --global user.email "youremail@example.com"

# 创建ssh key
ssh-keygen -t rsa -C "youremail@example.com"

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

# 提交时转换为LF,检出时转换为CRLF
git config --global core.autocrlf true

# 提交包含混合换行符的文件时给出警告
git config --global core.safecrlf  warn

# git 设置能检测文件名大小写
git config core.ignorecase false
# 创建一个本地仓库
git init

# 查看git状态
git status

# 将文件添加到暂存区
git add filename

# 撤销对工作区文件的更新或操作
git restore filename

# 撤销暂存区的内容
git restore --staged filename

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

# 回退版本 将当前hard指定到对应的commit_id
git reset --hard commit_id

# 查看更新记录 参数  --pretty=oneline,只会显示版本号和提交时的备注信息
git log --pretty=oneline

# 查看历史更新记录
git reflog

# 删除文件(对于git管理的文件),提交后可以删除本地和版本库的文件
# -r 递归 -f 对于已修改的文件(与版本库不一致)执行强制删除
git rm filename

# 删除文件,不删除工作区文件,提交后版本库文件被删除,工作区文件没有删除
git rm --cached <filename>
# 查看分支 -r 远程分支 -a 本地和远端分支
git branch <-r> <-a>

# 创建分支
git branch dev

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

# 切换分支
git checkout dev

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

# 删除分支
git branch -d dev


# 合并指定分支到当前分支 --no-ff 
git merge dev [--no-ff]
git merge sivan-dev -m "dev合并sivan-dev" --no-ff

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

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

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

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

# 查看分支合并情况
git log --graph --pretty=oneline --abbrev-commit
# 关联远程仓库
git remote add origin git@github.com:michaelliao/learngit.git

# 把本地仓库的所以内容推送到远程库
# -u 参数,Git 不但会把本地的 master 分支内容推送的远程新的 master 分支,还会把本地的 master 分支和远程的 master 分支关联起来
git push -u origin master

# 从远程仓库克隆 -b 克隆指定分支
git clone git@github.com:chodble/localhost.git [本地仓库名字]

# 要查看远程库的信息 -v 详细信息
git remote [-v]

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

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

# 推送到远程分支
git push origin master

# 拉去远程分支解决冲突
git pull

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

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

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

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

# 将远程主机的master分支最新内容拉下来后与当前本地分支直接合并
git pull origin master
git pull <远程主机名> <远程分支名>:<本地分支名>

# 统计文件改动
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

# 获取最新代码到本地 ,并在master下面创建master1
git fetch origin master:master1
# 将当前未提交的内容暂存
git stash

# 查看git暂存记录
git stash list

# 恢复暂存记录
git stash apply

# 删除暂存记录
git stash drop

# 恢复并删除记录
git stash pop

常用git stash命令:

(1)git stash save "save message"  : 执行存储时,添加备注,方便查找,只有git stash 也要可以的,但查找时不方便识别。
(2)git stash list  :查看stash了哪些存储
(3)git stash show :显示做了哪些改动,默认show第一个存储,如果要显示其他存贮,后面加stash@{$num},比如第二个 git stash show stash@{1}
(4)git stash show -p : 显示第一个存储的改动,如果想显示其他存存储,命令:git stash show  stash@{$num}  -p ,比如第二个:git stash show  stash@{1}  -p
(5)git stash apply :应用某个存储,但不会把存储从存储列表中删除,默认使用第一个存储,即stash@{0},如果要使用其他个,git stash apply stash@{$num} , 比如第二个:git stash apply stash@{1} 
(6)git stash pop :命令恢复之前缓存的工作目录,将缓存堆栈中的对应stash删除,并将对应修改应用到当前的工作目录下,默认为第一个stash,即stash@{0},如果要应用并删除其他stash,命令:git stash pop stash@{$num} ,比如应用并删除第二个:git stash pop stash@{1}
(7)git stash drop stash@{$num} :丢弃stash@{$num}存储,从列表中删除这个存储
(8)git stash clear :删除所有缓存的stash

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

# 创建tag -a 指定标签名,-m 指定说明文字 后面可以指定commit_id
git tag -a v0.1 -m "version 0.1 released" 3628164

# 查看所有tag
git tag

# 删除tag
git tag -d v1.0

# 查看标签详细信息
git show v1.0

# 推送本地标签到远程
git push origin <tagname>

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

# 删除远程标签
git push origin :refs/tags/v0.9

alias-别名

每个仓库的 Git 配置文件都放在.git/config 文件中
global 位置在用户主目录下的一个隐藏文件.gitconfig
# co 表示 checkout,ci 表示 commit,br 表示 branch
$ git config --global alias.co checkout
$ git config --global alias.ci commit
$ git config --global alias.br branch

# 配置一个 git last,让其显示最后一次提交信息
 git config --global alias.last 'log -1'
 
 # lg
 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"
git add -A  提交所有变化  
git add -u  提交被修改(modified)和被删除(deleted)文件,不包括新文件(new)  
git add .  提交新文件(new)和被修改(modified)文件,不包括被删除(deleted)文件  

git 分支

  • 主分支

  • master分支:存放随时可供生产环境中的部署的代码

  • develop分支:存放当前最新开发成果的分支,当代码足够稳定时可以合并到master分支上去。

  • 辅助分支

  • feature分支:开发新功能使用,最终合并到develop分支或抛弃掉

  • release分支:做小的缺陷修正、准备发布版本所需的各项说明信息

  • hotfix分支:代码的紧急修复工作

posted @ 2020-11-01 02:55  宁川  阅读(88)  评论(0)    收藏  举报