GIT使用过程中遇到的问题
一、Github设置ssh key以及提交代码
1.Github设置ssh key
注册完Github账号之后,在桌面上或者找个文件夹,右键git bash here 进入控制台窗口。
输入命令:cd ~/.ssh 然后回车,查看是否有ssh key
然后输入 ssh-keygen -t rsa -C"输入你的email",回车,然后提示你输入github的账户和密码。
生成ssh key之后去提示的路径文件夹下面找到id_rsa.pub文件,打开。复制里面的内容,粘贴至github的ssh key那里。这就算配置ssh key完成了。
最后可以输入ssh -T git@github.com测试,看是否提示确认连接,输入yes。就等于git和github之间的通讯配置完成了。
2.提交本地代码至Github
第一步:cd到本地项目的根目录下。在控制台输入:git init
第二步:讲项目的所有文件添加至仓库中 git add .这个命令行会将当前路径下的所有文件添加至仓库中。
第三步:将add的文件commit到仓库 git commit -m "注释语句"
第四步:去github上新建一个仓库,把地址拷下来。
第五步:git remote add origin 自己仓库的地址
第六步:上传代码至远程仓库 git push -u origin master
接下来按照提示输入github的用户名和密码。
二、git操作命令
1、撤回一次commit提交 ,还没有push,只是在本地commit
可以先用git log 查看commit历史,查看commit_id
git reset --soft|--mixed|--hard <commit_id>
对于 --soft|--mixed|--hard ,这三种命令,查看以下图,直接一目了然。
working directory 为工作区,stage/index 为暂存区,history为提交历史记录区。

我使用的是,git reset --soft 0dfca09cd8e096f5ceac3cd408fdd16fc09128e3
回退一次commit提交,代码还是会在stage/index ,暂存区中
2、commit push 代码已经更新到远程仓库
对于已经把代码push到线上仓库,回退本地代码其实也想同时回退线上代码,回滚到某个指定的版本,线上,线下代码保持一致.要用到下面的命令
git revert <commit_id>
revert 之后本地代码会回滚到指定的历史版本,这时你再 git push 既可以把线上的代码更新。
注意:git revert是用一次新的commit来回滚之前的commit,git reset是直接删除指定的commit,看似达到的效果是一样的,其实完全不同。
第一:上面我们说的如果已经push到线上代码库, reset 删除指定commit以后,你git push可能导致一大堆冲突.但是revert 并不会.
第二:如果在日后现有分支和历史分支需要合并的时候,reset 恢复部分的代码依然会出现在历史分支里.但是revert 方向提交的commit 并不会出现在历史分支里.
第三:reset 是在正常的commit历史中,删除了指定的commit,这时 HEAD 是向后移动了,而 revert 是在正常的commit历史中再commit一次,只不过是反向提交,他的 HEAD 是一直向前的.
三、自己创建的分支上,要merge到dev分支,解决冲突
1、在dev分支上,git pull
2、切换到自己的分支上,git checkout myBranch1 ,
3、然后 git rebase dev,然后哪里有冲突解决冲突,解决后如果还有冲突没有rebase在自己的分支上,执行,git rebase --continue,继续解决冲突,解决完,如果还有冲突没有合并,继续执行,git rebase --continue,。。。
4、在自己分支解决完自己代码后,就可以在将分支merge到dev上了。

浙公网安备 33010602011771号