详解git使用全过程

ubuntu16.04
系统中登录的账户是mi
1.拉取代码:(git clone下来是masterh主分支的代码)

 git clone **********                    文件属于用户mi
 sudo git clone **********           文件属于用户为root(sudo就是使用了root权限)
 注意:如果使用了sudo 即文件归root账户的操作权限,但是系统中的帐号是mi ,所以用打开那些克隆下来的文件只有只读权限不能操作(编辑器和命令窗口都不能修改),所以不使用sudo拉取代码。ll看一下就知道文件归属信息

2.查看所有的分支

git branch -a

3.查看当前的分支

git branch

创建分支

git branch double     创建double分支

切换分支

git checkout double     切换到double分支

创建并切换分支

git checkout -b double    上面两个命令的结合

删除分支

git branch -d double    //需要删除的分支不是当前打开的分支
git branch -D double    //强行删除该分支

恢复删除的分支

git branch <branch_name> <hash_val>
<hash_val>是git版本管理的散列值
git relflog          //查看git版本散列值的方法
git branch double HEAD@{13}      //恢复删除分支

在这里插入图片描述

用于测试:
git checkout master       切换到master分支
git diff double           比较master分支和double分支的不同(当前在master分支上)
git merge double          将double分支与master分支合并(合并某分支到当前分支)
git branch -d double      合并到了分支,没用的分支可以删除
git log -p master origin/master  比较本地仓库和远程仓库的区别

合并分支

git merge double

合并分支发生冲突

git merge --abort    //发现有冲突想取消合并
git commit           //发现有冲突,在本地修改后,使用git commit提交即可

4.切换到一个开发分支(本地没有,因为本地还很干净,只有master分支)

方法一:
 git checkout -b work_base origin/work_bse     作用checkout远程的work_base分支,在本地起名work_base,并切换到本地的work_base分支
 git checkout -b dev-double-fentan origin/master  //-b后为本地创建的分支,后面为远程分支
方法二:
  git fetch origin work-base:work-base     //从远程的origin仓库的work-base分支下载到本地并创建work-base分支,但不会切换到本地的work-base分支(前面为远程分支,冒号后面为本地分支)
  git checkout work-base     //切换到work-base分支

5.同样的方法,可以建立其他的分支
6.有了很多分支后,切换分支

git checkout work_base

7.本地修改了文件,还没有提交,但是还想用线上的

cd 目录下
git checkout file.php

8.更新代码(从远程获取最新代码到本地)

方法一:git pull  从远程获取最新版本并merge到本地   
   git pull origin work-base   (如果本地当前的分支正处于work-base,直接使用git pull)
   注意:如果git pull之前,本地修改了一些文件,但这些文件也可以不修改,那就使用先使用git reset --hard 再使用git pull ,这样本地的修改就没了

方法二:git fetch  从远程获取最新版本到本地,但不会与本地代码自动merge
   git fetch origin work-base   (如果本地当前的分支正处于work-base,直接使用git fetch)
   git log -p work-base origin/work-base        //比较本地的work-base分支和origin/work-base分支差别
   git merge origin/work-base       合并origin/work-base分支到当前的本地work-base分支

git reset 详解

git reset --soft  //回退后work-base分支修改的代码被保留并标记为add的状态
git reset --mixed(默认)   //重置索引,但不重置工作树,更改后的文件标记为未提交(add)的状态
git reset --hard  //重置索引和工作树,并且work-base分支修改的所有文件和中间的提交、没提交的代码都被丢弃了
git log    //看到提交的日志
git reset commit号 --hard
git reset --merge  //和--hard类似,只不过如果在执行reset命令之前你有改动一些文件并且未提交,merge会保留你的这部分修改,hard则不会。
注意:如果你的这些修改add或者commit过,merge和hard都将删除你的提交
git reset --keep  //和--hard类似,执行reset之前改动文件如果是work-base分支修改了的,会提示你修改了相同的文件,不能合并。如果不是a分支修改的文件,会移除缓存区。git status还是可以看到保持了这些修改。

提交代码

git pull origin work-base     //提交之前一定要pull一下
git status   //一定要查看下修改的文件状态,看是不是需要提交的
git add .      //有.的话就是全部提交了
git commit -m '海外物流'     //如果没有写-m 会进入到vim中,按下ctrl+x就退出了
git push origin  work-base

本地误删文件

cd   //到目录下
git reset HEAD UserBehaviorController.php
git checkout UserBehaviorController.php
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值