git学习 git操作进阶(分支,合并,查不同)

>#git add -i

采用交互的方式将工作区代码加入本地代码缓冲区中

>#git add -p

出现选项y/n/a/d/e

如果选择y将工作区代码加入本地代码缓冲区中,选择n或是d终止提交操作,选择a添加

提交代码到中心仓库的方法

1.>#git add some-file

     #git commit -m "some word"

适合添加简单的注释时使用

2. # git commit -m "some word" -a

提交本地所有改变的代码到中心库

3 # git commit -m " some word" some-file

提交指定文件名的文件到中心库


查看不同

#git diff 

结果显示本地工作区中还没有提交到缓冲区

#git diff --cached

显示缓冲区与中心仓库中的不同

#git diff HEAD

比较本地工作区与缓冲区和中心仓库的不同


文件重命名和移动

#git mv index.html hello.html

修改了文件名

修改后需要提交变化

#git commit -m "rename index.html"


理解和使用分支

#git branch -m master mymaster

#git branch

修改了master的名字为mymaster

#git branch newbranch

创建了一个newbranch分支,但是此时的工作分支仍然是master,需要去哦git chekout newbranch后才会切换分支。

通过下面的命令可以做到创建分支的同时切换分支

#git checkout -b another master

这样就从master分支中生成一个another分支,并把分支切换到another下。

#git branch -a

显示本地和远程的所有分支

删除分支

#git branch -d branch-name

分支重命名

#git branch -m orgin-name new-name


在分支间转移变化

转移分为三种:

1.Straight merging

检出工作分支

#git checkout master

转移要提交到当前分支的分支

#git merge alternate

alternate为要合并到master中的分支

此种方法会将alternate中的所有log信息存入到master中


2.squashing commits

有两个分支master分支和contact分支

将contact合并到master中

#git checkout master

#git merge --sqush contact

还需要执行git commit -m ""后提交变化

这种提交方式会将contact的log信息要锁到一次性提交的log中

3.cherry-pick commit

这是一种通过提交名称来合并的方法,可以只合并一次或指定次提交

#git checkout contact

检出一个分支

#git commit -m "add something"

此时会出现提交信息,假如提交号是:321d76f

我们就可以通过这个号来将这次提交内容同步到其它分支了

#git checkout master

#git cherry-pick 321d76f

这个执行过程git已经执行了一个commit过程。

如果有的时候我们要直接提交怎么办呢?

#git cherry-pick -n 321d76f

通过添加-n参数,git只会将变化提交到缓存中,没有执行commit

待你修改完其它后可以一起commit了

#git commit


恢复变化

#git reset --hard HEAD

可以移除最后一次提交过程




你可能感兴趣的:(git学习 git操作进阶(分支,合并,查不同))