git基本使用

你是一个刚刚参加工作的新人,拿到电脑后你安装了自己的开发工具和相关环境。

首先用git config --global配置用户名和邮箱,然后ssh-keygen -t rsa生成密钥(mac自带ssh),其中.pub就是公钥,复制到github上即可。

导师让你把项目下载下来熟悉一下,先别急着git clone,问问现在最新的代码在哪个分支上(如在release/2.0.0上),然后git clone -b release/2.0.0 git@xxx。

多人开发当然不可能都直接往一个分支上提代码,所以你要先拉出一个自己的分支:git checkout -b zhangyong/release/2.0.0。创建这个本地分支后,把它同步到远程仓库,也就是创建对应的远程分支:git push -u origin zhangyong/release/2.0.0。这时候分支搞好了,你可以用git branch -vv查看所有本地分支和对应的远程分支来确认你的操作是正确的。

好,你开始研究代码了,你加了一些打印信息,乱七八糟的搞了一会,搞完了你想把工作区的代码退回开始时的状态(也就是当前节点的状态,节点的概念很重要),于是你git reset --hard HEAD。hard表示工作区代码会被回退,不加的话只是节点修改代码不会变。HEAD是当前节点,上一个节点加一个^。

接下来你接到了需求,你开始开发了,开发完后用git status看一下你改了哪些文件,是不是有不需要改的文件。然后git add .  ,git commit -m "需求的相关信息" ,git push。这样提交最终的到达你自己的远程分支,可以提一个merge request合到开发分支。

然后你发现和目标分支的代码有冲突,于是你执行git pull origin release/2.0.0先将目标分支代码更新到你自己的分支上然后解冲突,这次merge不会成功,因为有冲突,命令行会输出相关冲突文件。解完冲突后执行git add . , git commit。不要加-m ,本次merge会继续完成。

导师说你写的乱七八糟的,让你把这次merge request退回去。于是你git revert commitId.revert操作相当于把你的一次提交以反操作的形式生成了一个新的提交,比如你的提交修改是A到B,那么revert会生成一个新的B到A的新提交。然后你把这个新提交合到目标分支上就可以了。

开发中想看看提交历史,git log,回到以前的某个commit版本:git reset --hard commitID。不小心强制回退到以前的commit,想要坐时光机回到前面的版本:git reflog然后同上。

有时候乱七八糟的,而你只想提交某一个commit,于是你开了一个新分支,然后git cherry-pick commitId把那个commit搞到了新分支上。

当前版本开发完了,你想删除分支:git branch -d zhangyong/release/2.0.0  ,git push origin :zhangyong/release/2.0.0。

新的版本开发开始了,新的远程分支拉出来了,更新一下你本地的分支目录:git fetch --all。切换到对应分支:git checkout origin/release/3.0.0。

 

比较两个分支差异(注意先更新本地分支的代码)git diff branch1 branch2 --stat(带stat则显示文件列表)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值