一、GIT简介
Git是一个开源的分布式版本控制系统,可以有效、高速地处理从很小到非常大的项目版本管理。 git也是Linus Torvalds为了帮助管理Linux内核开发而开发的一个开放源码的版本控制软件。
二、GIT安装
1.MACOS
1.brew install git
(一般mac电脑自带git)
2.用安装包安装
2.WINDOWS
GIT官网:https://git-scm.com/ 下载安装即可
3.GIT生成公钥
# 生成公钥
ssh-keygen
cat ~/.ssh/id_pub.isa
如果是windows可以在安装git软件包之后打开git gui的help选项中进行生成公钥。
三、GIT常用操作
本地仓库提交到远程
cd [你的项目目录]
git init
git remote add origin [http://||git@xxx.com/xxxx] # http 或者ssl
git add .
git commit -m "feat:提交信息"
git push origin -u master
# 写错了远程地址可以下述命令进行删除
git remote rm origin
远程仓库和本地仓库建立连接
比如远程已经存在一个创建好的仓库了,你本地也有项目代码,这时候你想把本地代码上传到远程仓库。
git remote rm origin
git remote add origin [远程git链接地址]
git add .
git pull origin [xxx分支]
# 可能回出现 fatal: refusing to merge unrelated histories
# 出现这个问题的最主要原因还是在于本地仓库和远程仓库实际上是独立的两个仓库。假如我之前是直接clone的方式在本地建立起远程github仓库的克隆本地仓库就不会有这问题了。
git pull origin master --allow-unrelated-histories
回滚提交
git log # 查询所有的提交记录
git reset --hard [xxxx想要回滚到的提交,会强制丢弃修改的代码]
git reset --soft [xxxx想要回滚到的提交,会保留本地修改的代码]
A分支想合并B分支的某一个提交
git cherrypick xxxx
当前修改未提交,想切换到其他分支进行操作
git stash
git checkout [xxx分支]
# 操作其他分支
git add .
git commit -m "xxxx"
git push
# 操作其他分支结束
git checkout [xxx stash 分支]
git stash apply
四、GIT提交规范
简介
Git 每次提交代码,都要写 Commit message(提交说明),否则就不允许提交。
好处:
- 方便快速浏览查找,回溯之前的工作内容
- 可以直接从commit 生成Change log(发布时用于说明版本差异)
- 统一风格
- 每个人风格不同,格式凌乱,查看很不方便
- 部分commit没有填写message,事后难以得知对应修改的作用
规范Commit message不仅能解决上述问题,而且基本没有副作用和学习成本,应该尽早加上。
GIT命令的学习可以参考 GITHUB DOC
提交类型规范:
feat:新功能(feature)
fix:修补bug
docs:文档(documentation)
style: 格式(不影响代码运行的变动)
refactor:重构(即不是新增功能,也不是修改bug的代码变动)
test:增加测试
chore:构建过程或辅助工具的变动
revert: feat(pencil): add ‘graphiteWidth’ option (撤销之前的commit)
提交格式:
<type>(<scope>): <subject> // 空一行 <body> // 空一行 <footer>
命令使用:
git log HEAD --pretty=format:%s
git log HEAD --pretty=format:%s --grep fix
git log <last release> HEAD --grep feature
五、GIT常用命令
git init 初始化
git --version 版本查询
which git 查看git安装位置
git config git配置信息
git config --global user.name "Allens"
git config --global user.email "yh4494@163.com"
cat ~/.gitconfig 查看配置信息
# 切换分支
git checkout -b [xxx分支]
git add 添加到git缓存区,为下一次commit做准备(可以使用通配符)
git commit -m "描述"
git status 查看仓库状态
git log 查看之前提交的内容
git reset --soft timestr 还原到某一个时间点
#### 分支切换
git branch -a # 查看远程分支
git branch -d xxx # 删除本地分支
git branch -d -r # 删除远程分支
git branch -m # 重命名本地分支
#### 暂存分支
git stash # 暂存分支
git stash apply # 应用暂存分支
#### 查看历史修改
git diff # 查看所有的修改
git diff xxx.java|xxx.php # 查看某个文件的修改记录
#### 操作
git checkout -D branch-name # 创建分支
git bracnch -D branch-name # 删除分支
git checkout branch-name # 切换到某一分支
#### 更新
git pull origin staging # 上传
git rebase master # 在分支上要先合并分支
# 保存本地仓库的账号
git config --local credential.helper store
# 保存git全局账号
git config --global credential.helper store
六、命令快捷键配置
(Linux)设置git快捷键
vim ~/.gitconfig
[alias]
co = checkout
br = branch
ci = commit
st = status
(Windows)设置bash Git快捷命令
如果你用的是 git bash 或者 XSHell 的话,在记住了命令含义的情况下,工作时键入快捷命令会提高工作效率。
windows的话,在git bash中进入c://User/user,执行touch .bashrc,然后在此目录下会生成一个.bashrc文件,将下面的快捷命令拷入保存即可,快捷命令可自行修改添加,主要是自己习惯和喜欢。
linux/macos在XSHell里快捷命令是在~/.bashrc中配置,在XSHell中 vim ~/.bashrc,把以上命令加到合适的位置保存(:wq)即可。
alias gs='git status'
alias gd='git diff'
alias ga='git add'
alias gc='git commit'
alias gck='git checkout'
alias gb='git branch'
alias gl='git log'
alias gthis='git rev-parse --abbrev-ref HEAD'
alias gpushthis='git push origin `gthis`'
alias gpullthis='git pull origin `gthis`'
alias gup='git remote update'
alias gpl='git pull origin'
学习更多干货类容(JAVA、前端、Kafka、redis等等)请关注我的公众号