git 命令操作集(整理)

写在前面:  熟悉暂存区,工作树,commit(提交)   都是个啥。。

 

基本命令和分支处理

1.git diff (用来查看暂存区和工作树之间的差别,如果暂存区没有数据,那么就显示工作树和最新提交状态之间的差别)

刚进行过工作树的更改,提交暂存区,暂存区与工作树并无差别。无显示,,,可以git diff HEAD (查看这次提交与上次提交之间的差别,最好用在git commit 之前。)

保险起见,在commit之后,查看一下提交日志,git log,确认提交成功

 

git branch (显示分支一览表)

git checkout -b 分支名 (创建并切换分支) ==【git branch 分支名】 加 【git checkout 分支名】

培育分支------(不断地对一个分支进行提交的操作)

git checkout 分支名 (切换到指定分支)

git checkout - (切换为上一个分支)

git add . (提交工作区与上次提交之间的所有的有不同的文件到暂存区)

git merge --no-ff 分支名 (master分支与分支(分支名)合并,为了在历史记录里明确记录下这次合并,加上 (--no-ff)参数) 之后编辑器启动,将编辑器内容保存,再关闭编辑器即可。。。。?

git log --graph (以图表形式查看分支)

git log –pretty=oneline(精简版,每个提交日志只占一行)

git log(查看提交历史,查看中,一直出现冒号: ,   如果想要退出,那么就需要使用命令字符 q)

 

git reset --hard 哈希值 (版本回溯,只要提供目标时间点的哈希值,就可以完全回溯到目标时间点的状态)

git reset  --hard HEAD^ (回溯到上一个版本)

git reset  --hard HEAD^^ (回溯到上上个版本)

"推进历史":在历史版本中创建一个分支后,想与最新合并后的状态合并,要先从历史的版本向最新的方向走,就是“推进历史”

git log 只能查看以当前状态为终点的历史日志,推进历史找哈希值时不妨用 git reflog (查看仓库的操作日志)

然后可以回溯到历史前的状态。先回到主分支 git checkout mastergit reset --hard 哈希

git merge --no-ff fix-B:

$ git merge --no-ff fix-B

Auto-merging README.md

CONFLICT (content): Merge conflict in README.md

Automatic merge failed; fix conflicts and then commit the result.

有矛盾

<<<<<<< HEAD

I add a 分支 feature-A

=======

 

--fix-B

>>>>>>> fix-B

解决矛盾并提交

I add a 分支 feature-A

 

--fix-B

保存该文件,git add ,git commit即可

 

要修改上一条提交信息,git commit --amend 执行 vim编辑器启动

vim编辑器的使用:

进入vim编辑器,如果后接文件名,则进入该文件的编辑模式,看图:

①.vim编辑器中,按i进入编辑模式;

②.按Esc回到锁定模式;

③.锁定模式下按:进入命令模式;

④.命令模式下输入quit不保存退出write保存不退出wq保存退出

 

cat README.md 回车就可以直接看到该文件的内容

 

更改历史:

git rebase -i HEAD~2 (可以打开编辑器,显示最新两次提交信息,如果有修改拼写错误的提交,可以将其合并到原有拼写错误的提交,成为一次完美的提交)

 

系统将显示rebase成功

git branch -a (不但可以显示所有的分支,而且可以显示本地和远程仓库之间的联系。)

 

推送至远程仓库:

若本地与自己远程库已有联系,比如clone下来的,可以直接git push -u origin master  (将更改推送到远程github的master分支,需确保更改无误可以与主分支master合并,一般本地也是在master分支上改 ,,,,一般不这么做)  

                                        一般在本地建立特性工作分支   如 feature A  ,

                                           push的话:     git push -u origin feature A     (这样远程--github,就自动生成了名为  feature A  的分支,并与本地保持同步,不影响本地和远程的主分支)

                                                                                       

若github 上的仓库是新建的,与本地无联系,要先git remote add origin 仓库链接地址,再git push -u origin master

(加上-u参数可以让origin的master分支处于本地当前分支的上游,git pull 时省去很多配置)

推送至master以外的分支,操作类似,git push -u origin feature-C (本地最好也处于这个分支)

git pull origin 分支名(拉取最新数据,与git push有很多类似)

 

github:

shift+/ 可以显示快捷键

修改url 查看文件及其差别的方法:/*?????

https://github.com/xikebyme/Hello_World/blob/master/hello_world.php#L2

这是指向了第二行

https://github.com/rails/rails/compare/vul_test...xike_change

两个分支进行比较的URL

https://github.com/rails/rails/compare/master@{7.day.ago}...master

比较7天之间的差别

https://github.com/rails/rails/compare/master@{2013-01-01}...master

查看指定日期之间的差别

 

[WIP]work in prograss 正在开发的pr,防止被误合并。

 

仓库的维护(永远让仓库处于最新的状态,防止本地仓库与开发过程脱节)

fetch 可以使本地仓库保鲜。。。

 

给原仓库设置(拥有代码绝对权限,版本权限的人的仓库)名称:

git remote add [名称] https://......(原仓库地址) 今后就以该名称作为该仓库的标识符(只需设定一次)

 

获取最新数据并更新:

git fetch [名称]

git merge [名称]/master

显示Already up-to-date即可

 

采纳pull request 的方法:

如果pr很简单,这时只需要在网页上点击Merge p r 即可。然后再修改本地自己的开发环境就行/*?????????

pr 如果足够大,要先在本地进行检验(安全接收PR),看是否可以被合并。如图;

 

获取发送方的远程仓库。。。

创建用于检测的分支,检测合适的话,就可以点击网页上的Merge 了。

具体:git remote add PR发送者 【网址】

git fetch PR发送者

git checkout -b pr1

git merge PR发送者/work

检查结束后pr1分支就没用了,删除,,git branch -D pr1

然后切换到gh-pages 分支,合并PR发送者/work

查看本地与自己github 上有什么不同,git diff origin/gh-pages

最后,git push

(这种方法,也可以直接让github上的相应pr 关闭,并且显示已经合并)

 

为仓库主提交pr(PULL Request 实际代码修改建议):(简述)

1,登录自己的github,在另一窗口打开仓库主GitHub页面,在仓库主仓库主页点击 fork

2.找到自己仓库集里的      如图            找到clone 按钮,就会有clone提示,clone到本地就行

               

3.在本地创建分支 如 dev-A   

4.在本地特性分支上进行修改,提交

5.本地切换到主分支,在此分支下将本地特性分支推送到远程github上fork来的仓库里  push命令(见上)

6.在github上给仓库主发送pr(简单),并告知仓库主

ok......

 

 

github==Git + Hub

/*注意Hub命令,效率更高,可以完全覆盖git命令,可以尝试使用。。。。。

细节可能有些许误差,,,,可在网上小查一下,以实际情况为准

 

 

 

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值