这是我的第一篇随笔,主要记录自己的点点滴滴,留下足迹。希望有一天成为技术大牛!

  git教程推荐菜鸟教程http://www.runoob.com/git/git-tutorial.html  和廖雪峰教程https://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000/

操作git脑海中要记得三个概念:工作区、暂存区(.git/index)、版本库(.git)

git add .        工作区----->暂存区

git commit -m "comment"      暂存区---->版本库

 

 还有一些基本概念:

     tracked(已跟踪)   untracked(从未跟踪,没被add或commit过)   staged(进入暂存区)  unstaged(未进入暂存区)

    git  reset HEAD 撤销已经暂存的文件

    git checkout --file     取消文件修改,回到之前版本?有危险

   分支管理:

     git checkout -b (branchname)          创建新分支并立即切换到改分支下

    git branch (branchname)              创建分支

    git branch                                      查看分支

   git checkout (branch)                     切换分支

   git merge (branch)                          将(branch)合并到当前分支

   git branch -d  branchname    删除本地分支

 git branch -D  branchname    强行删除本地分支

 远程仓库:

  git remote add origin git@balalal.git     关联远程仓库

  git checkout -b feature/international origin/feature/international    (创建本地分支feature/international并立即切换到,关联远程分支origin/feature/international)

 git push -u origin master                         第一次推送到远程仓库

 

   指令很麻烦,而且容易出错,不过可以提高git操作熟练度。用webstorm操作git会方便很多,还不容易出错,推荐教程https://www.cnblogs.com/jinguangguo/p/4868152.html

   想到前几天把公司远程库删了个文件夹,我就老脸一红。

 版本回滚(亲测):

    git log                         查看日志

    git reset --hard HEAD  回退到上个版本

              git reset --hard commit_id  退到制定commit id 的sha码

 

更新:     工作分支:feature/international

git pull 时出现冲突,想着直接让远程分支覆盖本地代码,在网上搜索到如下办法:

git fetch --all //只是下载代码到本地,不进行合并操作
git reset --hard origin/master  //把HEAD指向最新下载的版本

出现了问题,因为最新下载的版本不是我工作的分支,所以
HEAD指向了另一个分支,导致表面上git还是在工作分支,实际上已经不是了。还好没有直接合并,否则会改变远程分支代码。
后来想着git checkout feature/international 切换到工作分支,可是出现如下问题:

  You are in 'detached HEAD' state. You can look around, make experimental
  changes and commit them, and you can discard any commits you make in this
  state without impacting any branches by performing another checkout.

  If you want to create a new branch to retain commits you create, you may
  do so (now or later) by using -b with the checkout command again. Example:

  git checkout -b <new-branch-name>

  HEAD is now at ...

detached HEAD state   游离状态   好吓人


解决办法:
切换到master分支, 删除本地工作分支,然后在创建相同名字分支再关联远程分支,ok了!

      圣光会赐予我胜利!加油!

posted on 2018-02-05 19:36  独行侠达达  阅读(286)  评论(0编辑  收藏  举报