git命令详解

为什么使用git


  • 版本控制:可以解决多人同时开发的代码问题,也可以解决找回历史代码的问题。
  • 分布式:Git是分布式版本控制系统,同一个Git仓库,可以分布到不同的机器上。首先找一台电脑充当服务器的角色,每天24小时开机,其他每个人都从这个“服务器”仓库克隆一份到自己的电脑上,并且各自把各自的提交推送到服务器仓库里,也从服务器仓库中拉取别人的提交。可以自己搭建这台服务器,也可以使用GitHub网站。

常用命令


  1. 创建一个新的版本库

     > git init
    
  2. 版本创建与回退

    1. 使用

      # 创建一个新的版本
      git add fileName
      git commit -m "提交日志“
      
      # 查看版本记录
      git log
      
      # 回退到前n个版本
      git reset --hard HEAD^			# 其中HEAD表示当前最新版本,HEAD^表示当前版本的前一个版本,HEAD^^表示当前版本的前前个版本,也可以使用HEAD~1表示当前版本的前一个版本,HEAD~100表示当前版本的前100版本。
      
      # 回退到某个版本
      git reset --hard 版本号		# 版本号通过 git log 或者 git reflog 查看到
      
    2. 工作区与暂存区

      # 工作区----项目目录,工作区有一个隐藏目录.git,是git的版本库。
      # git的版本库里存了很多东西,其中最重要的就是称为stage(或者叫index)的暂存区,还有git为我们自动创建的第一个分支master,以及指向master的一个指针叫HEAD。
      
      
      # 查看当前工作树的状态
      git status
      
      git add 将更改的文件添加到暂存区,git commit 将暂存区的文件一次性提交到git仓库
      
    3. 管理修改和撤销修改

      # 改乱了工作区某个文件的内容,想直接丢弃工作区的修改
      git checkout -- fileName
      
      # 当你不但改乱了工作区某个文件的内容,还添加到了暂存区时,想丢弃修改时分两步
      git reset HEAD file
      git checkout -- fileName
      
      # 已经提交了不适合的修改到版本库里,想要撤销本次提交
      git reset --hard HEAD^
      
    4. 对比文件的不同

      # 对比工作区的file和HEAD版本中的该file的不同
      git diff HEAD -- fileName    # -- 代表工作区  HEAD 代表当前版本
      
      # 对比不同版本中某文件的不同
      git diff HEAD HEAD^ fileName
      
  3. 分支管理

    1. 创建与合并分支

      # 查看当前有几个分支并且查看在哪个分支下工作
      git branch
      
      # 创建分支:
      git branch 
      
      # 切换分支
      git checkout 
      
      # 创建一个分支并切换到其上工作
      git checkout -b 
      
      # 切换回master分支
      git checkout master
      
      # 把分支的工作合并到master分支上
      git merge 
      
      # 删除分支
      git branch -d 
      
    2. 解决冲突

      # 冲突:当master和分支上同时修改了同一文件,这时git无法执行“快速合并”,只能试图把各自的修改合并起来,但这种合并就可能会有冲突。
      
      # 可以通过创建一个新的版本来解决冲突
      git add fileName
      git commit -m "提交日志"
      
    3. 分支管理策略

      # 上述解决冲突的方法会导致:删除分支后,会丢掉分支信息。可以通过下面的命令来解决这个问题
      git merge --no-ff -m "禁用fast-forward合并" 
      
    4. bug分支

      # 修复bug时,我们会通过创建新的bug分支进行修复,然后合并,最后删除;当手头工作没有完成时,先把工作现场git stash一下,然后去修复bug,修复后,再git stash pop,恢复工作现场。
      
      git stash
      
      git checkout master
      
      git checkout -b bug-dev
      
      git add fileName
      
      git commit -m "提交日志"
      
      git checkout master 
      
      git merge --no-ff -m "提交日志" bug-dev
      
      git branch -d bug-dev
      
      git checkout dev
      
      git stash pop
      

你可能感兴趣的:(知识积累)