前言
每次换电脑的时候老是遇到一些git的“bug”,所以这次决定整理一下git的基础的用法,希望也能对小伙伴们有所帮助
git的本地用法(日常流程)
git init
创建git的本地仓库
git status
查看当前没有提交的文件
git add .
将没有提交的文件保存到暂存区
git commit -m '//这个写每次提交到本地仓库的时候要写的做了哪些事,方便查看、修改'
提交到本地仓库
git push origin myWarehouse
提交到远程仓库,这里到的是myWarehouse的分支
以上基本上是git的流程最最最基础的用法,下面我要说到的是 git用到的一些处理 and 比较实用的方法
git的处理与方法
*创建分支:
git checkout -b name
//name分支名
*查看分支:git branch
*切换分支:git checkout name
//name同上
*删除分支:git branch -D name
//name同上(必须没有在name上才能删除)
*查看远程仓库:git remote -v
*添加远程仓库:git remote add [shortname] [url]
//shortname远程仓库指定的名字,url远程仓库地址
*查看远程分支:git branch -r
*删除远程分支:git branch -dr name
//name看到什么写什么,类似[remote/branch]
以上是个人总结经常用到的git命令,更为详细具体的git命令可以参考阮大神阮一峰的日志,希望能对大家有所帮助
应用场景
*把远程仓库的内容拉到本地:
git clone [url]
*从远程仓库更新到本地:git pull [远程仓库的分支]
(本地版本必须是你远程仓库之前版本,不然会出现冲突)
*支分支与主分支保持一致:git rebase dev
(这里假设的是dev是主分支,命令执行分支是支分支)
*>>如果有冲突会显示1/3
啥的分数值(这里为了效率我就不加图了,好心的小伙伴可以献上,我会更新上去)
,然后打开编辑器解决冲突!完成之后输入git add -A
,三个中的一个就完成了,这个时候输入git rebase --continue
,跳到一下一个冲突..........直至1/3分数
消失,这个操作就完成了,就可以执行合并分支啦
*合并指定分支到当前分支:git merge [branch]
*当合并之后需要推送到远程仓库:git push --force [shortname] [branch]
这里是强制推送,因为合并了分支与远程仓库不一定兼容
git本地与远程仓库的绑定(这里以码云为例吧,其他的类似)
注册码云的账号——登陆——设置——安全设置——ssh公匙——添加公匙(名字随意、公匙如下)——确定
电脑上打开CMD——输入命令
ssh-keygen
——连续回车——生成成功——找到路径C:\Users\用户名\.ssh
(注意是在.ssh
这个文件夹里面,没找到就找这个文件夹)——打开pub后缀的文件——它就是公匙
这样码云就和本地电脑建立了联系,新建项目就可以执行git命令啦
进阶篇(如果有多个不同网站的远程仓库怎么办?)
在刚刚提到
.ssh
这个文件夹里面,新建config
的文件(注意没有后缀!!!)编辑如下代码Host git.oschina.net //对应的远程仓库网址 User xxx@gmail.com //你的用户名也就是你的邮箱 PreferredAuthentications publickey //固定写法 IdentityFile ~/.ssh/id_rsa_gitee //保存当前远程仓库的本地ssh文件名 Host github.com User xxx@gmail.com PreferredAuthentications publickey IdentityFile ~/.ssh/id_rsa_github Host git.coding.net User xxx@gmail.com PreferredAuthentications publickey IdentityFile ~/.ssh/id_rsa_coding
电脑上打开CMD——输入命令
ssh-keygen
——在第一个提示处输入(如图)前面路径为/C:/Users/用户名/.ssh/id_rsa_gitee
(主要是为了改变双下线的地方,生成每个网站的ssh公匙)——连续回车——生成成功——在对应的网站匹配对应的ssh公匙,这样一个电脑就可以使用多个远程仓库啦
(完)
更新一张图片...
修复Bug的操作
------------ //我们在dev分支上,发现master分支上有代号101号bug
$ git stash //冷冻现在在dev分支上的工作状态 冻结吧!
$ git checkout master //这个bug发生在master主分支上,我们切回master分支
$ git checkout -b issue-101 //创建代号101的修复bug分支
修改你的bug
$ git add readme.txt //提交到暂存区
$ git commit -m "fix bug 101" //注意填写信息,以免日后查证
$ git checkout master //切换回master分支
$ git merge --no-ff -m "merged bug fix 101" issue-101 //合并分支,注意不使用fast forward模式
$ git branch -d issue-101 //删除issue-101分支
$ git checkout dev //bug 改完了,是时候回到dev继续写bug了
$ git stash list //查看刚刚的冻结现场
$ git stash pop //git stash pop,恢复的同时把stash内容也删了:
//一是用git stash apply恢复,但是恢复后,stash内容并不删除,你需要用git stash drop来删除
合并添加备注
git merge 分支名 --no-ff -m" 本次合并添加的注释信息"
放弃本地的修改和新增的文件
git checkout . && git clean -df