我心中的Git《中级篇》

177 阅读2分钟
  1. 创建分支、切换分支

     git branch:查看本地仓库所有分支
     git branch -a:查看本地和远程所有分支
     git branch -r:查看远程分支
    
     git branch [分支名]:新创建一个分支
     git checkout [分支名]:从当前分支切换到指定的分支
     git checkout -b [分支名] :创建一个分支的同时切换到新创建的分支上
     git checkout -b [新分支名] [远程分支]:拉去远程分支至本地创建的新分支,并切换至新分支
     git checkout -t [远程分支名]:拉去远程分支并新建与远程分支名同名的新分支
    
    • 切换分支之前,当前分支需要将修改的内容提交至本地仓库Repository

    远程分支需要与本地分支产生过连接git fetch [远程主机名],不然获取不到远程分支

    • 创建的新分支是基于当前分支所复制的分支
  2. 版本控制

    查看版本信息
     git log
     git log --pretty=oneline
     git log --oneline
     git reflog(推荐)
    

    版本信息显示样式不同,由上至下展示信息越加简洁

    版本前进和后退
     git reset --hard [commit_id]:可以操作版本前进或后退(常用)
    
     git reset --hard HEAD^:版本只能回退,^的数量表示回退几个版本
     git reset --hard HEAD~[回退步数]:同样是只能回退
    
     git reset --soft [commit_id]:只退回commit信息(相当于本地仓库退回暂存区,修改记录不变)
    
  3. 撤销某个文件的修改

    • 对文件的修改尚未提交到暂存区

      git checkout -- filename
      
    • 已经提交到暂存区

       git reset HEAD filename
       git checkout -- filename
      
  4. 合并远程分支

    前提:本地修改必须全部已经提交

    • git pull(包括了fetch和merge,这时分支图上会出现Merge开头的commit信息)

      • 合并时出现冲突,解决方法:

        • 手动解决冲突

        •  git add filename
           git commit -m"log"
          
    • git pull --rebase(在分支图上不会有多余的commit信息,包括有冲突的情况)

      • 合并时出现冲突,解决方法:

        • 手动解决冲突

        •  git add filename
           git rebase --continue