git常用指令、流程和原理

git是个好东西,日常开发、工作都要基于它,所以花了时间重新过了遍。东西太多,慢慢更新吧~这里会用自己的理解和描述来重新解释概念和流程,可能会与官方定义有不同,具体可查文后附学习资料

1.添加公钥

不管使用github还是bitbucket,或者自己的git服务器。那么都需要添加公钥到服务器,不然使用https协议每次push、pull都要输入密码,会累死的…
本地电脑,git窗口输入,一直点下一步就好。:

ssh-keygen -t rsa -C "your_email@youremail.com"

打印这个公钥,然后复制到github等,一般都是seeting里面有add ssh key类似页面。

cd ~/.ssh
cat id_rsa.pub

2.一般流程

一般第一次的话,需要将项目克隆到本地:

git clone url

原理提示:
git有3个区:工作区,暂存区,git仓库。

工作区:就是本地的目录文件,我们在电脑文件夹里看到的,我们工作时会增删改文件;

暂存区:就类似虚拟机的快照,会把工作区某文件做一个快照,保存于此;

仓库:真实的一次commit提交,可看做一次完整的保存暂存区 里改动,有唯一标示,这个提交稍后我们会推送到远程,其他人就能看见了。

首先,查看当前更改了哪些文件(搞清楚工作区里我们做了啥呀):

git status

可以看改动了啥东西:

git diff

然后选择某个改动的文件保存到暂存区(假设我们新添加了hello.java这个文件):

git add hello.java

突然发现hello.java 文件先并不想提交,需要从暂存区把快照删掉:

git reset HEAD hello.java

选择world.java保存到暂存区:

git add world.java

提交到仓库(-m后面加一些注释,利于其它人知道你提交了啥东西):

git commit -m 'some log'

提交到远程:

我们做了修改,需要push到远程上,其它人才能看到我们做的更改。但是呢这里需要注意,由于是要将本地的文件保存到远程,那么就可能出现别人更改同一个文件同一处代码并已经push到远程,导致冲突。所以我们push到远程时,先将远程的所有更新拉到本地来,看有没有冲突,有的话就解决冲突的地方;没有更好,再提交到远程。

步骤:

先拉远程的所有更新:

git pull

执行后会打印是否有冲突,有的话,根据提示找到冲突并解决。然后重新保存所有更改到暂存区,再commit,最终执行:

git push

提示成功,这时我们已将本地做的修改都push到远程,其它人就能看见了。

3.查看并使用某远程分支

给一个分支,需要在上面就行修改等工作。假设远程上分支为rd_fixbug_v1.3,需要切换到该分支并查看并修改,同时push到远程协同完成任务。

创建远程rd_fixbug_v1.3分支对应的本地分支my_rd_fixbug_v1.3 ,并跟踪:

git checkout -b my_rd_fixbug_v1.3 origin/rd_fixbug_v1.3

接下来就同上面的一般流程了。

4.合并分支

我们的稳定代码都在master分支上,当前开发的分支为rd_fixbug_v1.3,现在修改和测试都完成了,那么就要合并到master分支中完成修改bug任务。

因为要合并到master分支中,先切换到master分支:

git checkout master

使用指令进行merge:

git merge --no-ff rd_fixbug_v1.3

可能存在冲突,修改完成后,进行add,commit,那么此次merge就完成了。

git pull指令其实就是执行了git fetch拉取远程分支,并自动执行git merge来做合并

5.其它

如果不想让git再追踪该文件?

git rm --cached file

如果修改了某文件,想还原到上一次commit状态且没有add进暂存区,那么使用:

git checkout -- file

6.学习资料

pro git:
https://git-scm.com/book/zh/v2

廖雪峰Git教程:
http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值