本文主要介绍git
密钥生成与配置,基础命令包括clone
、add
、commit
、pull
、push
等,冲突处理,查看并回退历史版本,以及提交规范等。git
//打开git bash 输入如下命令 //用户名,填你的名字全称 如:yaoxfly 方便识别 git config --global user.name 'yaoxfly' //邮箱,填你的经常使用邮箱,代码出错时会发邮件通知你 git config --global user.email '123@qq.com'
ssh-keygen -t rsa 并按回车3下
tips:为何按三下,是由于有提示你是否须要设置密码,若是设置了每次使用git都会用到密码,通常都是直接不写为空,直接回车就行了.
私钥:id_rsa
,公钥:id_rsa.pub
默认文件夹在你打开git bash
的目录,或者在你的用户目录~/.ssh
文件夹下github
复制id_rsa.pub
文件里的全部内容粘贴到须要地方,好比github
或码云的公钥配置上npm
tips: 在生成key
以前git config --global
姓名和邮箱必定要设置, 不然每次操做都要填写用户名和密码,不要在秘钥上设置密码,直接下一步就好。
git clone 'xxxx'
git add . // 匹配全部的文件, 提交被修改的和新建的文件,但不包括被删除的文件 git add -u // update tracked files 更新全部改变的文件,将修改的文件提交到暂存区。 git add -A // 是上面两个功能的合集(git add --all的缩写)
git commit -m "添加你的注释,通常是一些更改信息"
//仅仅是撤回commit操做,您写的代码仍然保留 git reset --soft HEAD^
git push origin master:master
fatal: refusing to merge unrelated histories
拒绝合并不相关的历史解决方式,强制提交git push origin master:master -f
git push -u
tips:出现这个问题的最主要缘由仍是在于本地仓库和远程仓库其实是独立的两个仓库。
命令基本上就是 git fetch
和 git merge
命令的组合体,git 从指定的远程仓库中抓取内容,而后立刻尝试将其合并进你所在的分支中。缓存
这个命令会访问远程仓库,从中拉取全部你尚未的数据。 执行完成后,你将会拥有那个远程仓库中全部分支的引用,能够随时合并或查看。
可是注意的是 git fetch
并不会自动合并或修改你当前的工做。 你必须手动将其合并入你的工做。性能优化
合并分支bash
使用 git pull
,命令来自动的抓取而后合并远程分支到当前分支。(至关于一次执行fetch加merge命令)更简单,更方便快捷,更温馨的工做流程。ssh
git branch newBranch
git checkout newBranch
git merge newBranch
git branch -D newBranch
tips:合并分支前,必定要切换到想要合并的分支上,好比主分支,再执行分支合并操做
git log
git status
git rm -r --cached .
tips:应用场景,好比.gitignore忽略的文件无效的状况等
git remote set-url origin ssh://git@ip:端口/home/git/gitrepo/git.git
tips:当代码库远程迁移后,可以使用当前功能
git clone http://XXXX/XX.git //克融项目 git log // 查看commit历史,并找到须要的版本 git checkout '版本号' //获取
tips:运行
git log
命令 ,查看commit后跟着的哈希值就是版本号
问题描述:提交git仓库时出现:Your branch is up-to-date with 'origin/master'.ide
/*解决方案*/ //这时候咱们就须要新建一个分支 git branch newBranch //检查分支是否建立成功,前面的*表明的是当前你所在的工做分支 git branch //切换到你的新分支 git checkout newBranch //添加修改和新增的文件 git add . //提交到本地 git commit -m "18.03.01" //检查是否成功 git status //而后切换到主分支 git checkout master //将新分支提交的改动合并到主分支上(合并前必定要切换到主分支) git merge newBranch // push代码了 git push -u origin master //删除这个分支 git branch -D newBranch
++<<<<<<< HEADgrunt
++<<<<<<< new_branch工具
可直接删除掉这些乱码,保存后再提交,某些ide
可提示,并可删除这些乱码等其余智能操做,如vs code
,编码神器,个人最爱,哈哈,强推一波。
问题描述:committing is not possible because you have unmerged files
/*解决方案*/ //把你修改的文件一个个添加进去 git add '文件名', //提交本地 git commit -a -m "备注信息" //提交远程 git push -u
git提交也有规范,业内作的比较好,具备参考价值的就是Angular
的提交。
<type>(<scope>): <subject> #header // 空一行 <body> // 空一行 <footer> //中文释义 <类型>[可选的做用域]: <主题> 描述 [可选的正文] [可选的脚注]
参数 | 说明 | 是否必须 |
---|---|---|
type | 提交类型 | true |
scope | 提交影响的范围 | false |
subject | 提交目的的简短描述 | false |
header | 内容 | true |
type有如下标识
tips:
- 若是type为feat和fix,则该 commit 将确定出如今 Change log 之中。其余特殊状况(docs、chore、style、refactor、test)由你决定,要不要放入 Change log,建议是不要。
- 当一次改动包括主要type与特殊type时,统一采用主要type。