git学习记录

1、创建版本库
进入对应的文件夹,可以是空文件,也可以是已经存在的项目工程文件,然后执行如下命令:

$ git init

2、把文件添加到版本库
比如新建了readme.txt文件
第一步,用命令 git add 告诉Git,把文件添加到仓库:

$ git add readme.txt

第二步,用命令 git commit 告诉Git,把文件提交到仓库:

$ git commit -m "wrote a readme file"

-m 后面是提交时候的备注,正常情况下是必须的。

3、撤销工作区的修改
文件修改了,在准备提交之前(add或者commit),如果你觉得自己的修改存在一些问题,不能够提交,这个时候就需要用到 git checkout - - file 命令,作用是把放在工作区的file的修改全部取撤销掉。这里有两种情况:
a. file在修改之后还没有add到暂存区,那么file会被还原成和当前版本一样的状态;
b. file在add之后才又做的修改,那么file会被还原到add时候的状态;

总之,git checkout - - file 命令会把工作区的文件撤回到最新一次的commit或者add的状态。
如果需要把所有的文件都清除掉,可以使用

git checkout .

如果是需要移除清空那些没有跟踪的文件,可以使用

git clean -f -d

4、撤销暂存区的修改
如果已经把file add到暂存区中,在commit之前,需要撤销的话,使用git reset HEAD file命令,并重新把file放回工作区中。git reset命令既可以回退版本,也可以把暂存区的修改回退到工作区中。

5、远程仓库
在github上面增加一个repository远程仓库,GitHub然后会提示SSH的地址,用命令 git remote add < name > [address] 的方式,创建ssh的提交地址。

$ git remote add myorigin git@github.com:gandolfe/VoiceAdapter.git 

然后使用这个远程连接地址,提交代码

$ git push -u myorigin master

-u是用在第一次提交到远程仓库的时候,用来关联远程仓库和本地仓库。

6、克隆远程分支
从远程仓库克隆一份代码也是非常简单的,使用clone命令就可以完成,clone后面是远程仓库的地址。官方推荐是使用SSH方式。

$ git clone  git clone git@github.com:darryrzhong/OpenEyes.git

7、查看远程分支连接
使用git remote -v,可以查看目前git仓库中定义的远程连接的信息。

8、切换分支
创建分支很简单,如下命令便创建了一个dev分支,并且由于-b命名,会自动切换Dev分支。

$ git checkout -b dev

这条命令相当于是如下两条命令的合集

$ git branch dev
$ git checkout dev

9、基本的合并操作
在一个dev分支开发完之后,需要把分支上的代码合并到主分支上面。
首先切换到需要合入的master分支:

$ git checkout master

然后在master分支上去执行merge的操作:

$ git merge dev

这样就会把dev上的改动合并到master上。
当然merge是有两种方式,一种是"fast-forward",即master分支指向的提交是要被合并的dev分支的直接上游,git会直接把master指针向前移动;另一种是三方合并,即master分支指向的提交不是dev分支的直接上游,这时git会基于两个分支最新的提交快照以及两个分支共同祖先(Parents)的提交快照进行合并,然后创建并指向一个新的提交快照。
后一种方式,可能会遇到冲突(conflict),需要用户手动解决冲突然后再提交。

10、基本的变基操作
如果mater分支和dev分支都在向前推进,我们可以把dev分支上的更改提交以补丁的方式应用到master分支上。这样的变基操作不会产生新的合并提交,而且会把整个提交像一条线一样串起来。
首先进入到dev分支:

$ git checkout dev

然后执行变基的命令:

$ git rebase master

执行这条命令后,git首先找到master和dev共同的祖先,然后把dev的更改提交临时保存起来,然后把当前分支重置为master分支(即dev分支的指针指向master),然后在当前的dev分支上依次引入之前保存的更改提交。
当然,变基操作也同样会存在冲突的情况,这个时候也需要用户手动解决冲突,之后才能继续变基。
变基操作在gerrit上并行提交代码的时候很有用,因为它不会产生新的提交,这样可以保持在gerrit上review的是同一笔提交。

11、补丁的提交方式
在提交命令的后面增加 --amend参数,可以使用打补丁的方式去修改本次的提交。也就是说不会产生新的提交,而是对指针指向的这次提价的修改。

$ git commit --amend

需要注意一点,修改了提交记录之后,需要使用 Esc + 冒号 + wq ,才能实现保存并退出

12、删除分支
在分支完成了自己的使命之后,需要把这条不会再用的分支删除掉。

$ git branch -d dev

当然,有时候可能需要强制删除掉我们不打算继续使用或者维护的分支。

$ git branch -D dev

13、存储命令
我们在dev分支上开发一个新的接口,但是工作还没有完成,现在需要回到master分支上去做一些远程提交的工作。如果这个时候直接想要切回到master分支,git会提示你先commit或者stash。由于我们没有完成工作,只能先stash。
stash的意思是存储当前的修改,并压如存储栈中

$ git stash

使用 git stash list可以查看stash栈中的内容,使用git stash apply+版本号(stash@{})可以回到存储的内容。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值