美文网首页
Git 学习之路

Git 学习之路

作者: Anancncn | 来源:发表于2018-06-29 16:27 被阅读0次

常用单词

  • HEAD --> 当前版本(HEAD^ --> 上一个版本,HEAD^^ --> 上上版本,HEAD~100 --> 上100个版本)
  • Working Directory --> 工作区(电脑里面的目录)
  • Repository --> 版本库
  1. stage(/index) 暂存区----git add 就是把文件修改添加到暂存区
    2.master 自动创建的第一个分支----git commit就是把文件修改提交到分支
  • origin(远程仓库) --> 运行Git的服务器,如Github
  • stash --> 可以把当前工作储藏起来

Git 安装

  • 简单的一句命令行 sudo apt-get install git
  • 安装完成之后需要自报家门
    $ git config --global user.name "Your Name"
    $ git config --global user.email "email@example.com"
  • Github是通过SSH来管理设备的
    $ ssh-keygen -t rsa -C "youremail@example.com"

git提交

  • git init --> 在文件夹底下运行这条命令,会是此文件夹变成Git可以管理的仓库
  • 将文件放到Git仓库所需要的步骤
  1. git add 文件名(当全部上传仓库时:git add .)
  2. git commit -m "xxxx"(将文件提交到仓库)
  3. git push origin master 推送到远程仓库

Git管理

  • git status 可以让我们掌握仓库的状态
  • git diff 查看difference
  • git log 查看历史记录(log中commit是版本号)
  • git reset --hard HEAD^(HEAD也可以换成版本号) 回退到上个版本
  • git reflog 记录每一次的行为,里面包括版本号
  • git checkout -- file 把file文件再工作区的修改全部撤销(1.当工作区的修改还没有放到暂存区,撤销到和版本库一样的状态。2.当工作区的修改已经添加到暂存区,撤销到添加暂存区后的状态)
  • git reset HEAD file 可以把暂存区的修改撤销掉(unstage),重新放回工作区
  • git rm “file”从版本库中删除文件,然后commit

远程仓库

  • 在远程仓库里克隆新的仓库(如Github)
    $ git remote add origin git@github.com:XXXXXX/xxxxxx.git
  • 我们一般先创建远程仓库,再从远程仓库克隆
  • git remote 查看远程仓库信息(远程仓库默认名一般为origin)
  • git remote -v 显示更详细的信息

分支管理

步骤 参考

  • (提交点我的理解就是提交的代码节点)一开始的时候,master分支是一条线,Git用master指向最新的提交点,再用HEAD指向master,就能确定当前分支,以及当前分支的提交点。每次提交,master分支都会向前移动一步,这样,随着你不断提交,master分支的线也越来越长。
  • 当我们创建新的分支,例如dev时,Git新建了一个指针叫dev,指向master相同的提交点,再把HEAD指向dev,就表示当前分支在dev上。不过,从现在开始,对工作区的修改和提交就是针对dev分支了,比如新提交一次后,dev指针往前移动一步,而master指针不变。
  • 假如我们在dev上的工作完成了,就可以把dev合并到master上。Git怎么合并呢?最简单的方法,就是直接把master指向dev的当前提交,就完成了合并。
  • 合并完分支后,甚至可以删除dev分支。删除dev分支就是把dev指针给删掉,删掉后,我们就剩下了一条master分支。

代码

  • git checkout -b <name> 创建并切换分支(git checkout -b dev 创建并切换dev分支,相当于git branch dev ,git checkout dev)
  • git checkou <name>切换分支(git checkout master 切换回master分支)
  • git branch 查看当前分支,会列出所有的分支,×代表当前分支。
  • git merge <name>合并name分区到当前分支(git merge dev 合并dev到当前分区)
  • git branch -d <name> 删除分区(git branch -d dev 删除dev分区)

冲突管理

  • Git用<<<<<<<=======>>>>>>>标记出不同分支的内容,我们手动修改后add,commit。
  • git log --graph 查看分支合并图。

分支策略管理

  • git merge --no--ff -m “注释” <name> 禁用Fast forward(在这个模式下合并分区之后无法查找分支信息)。

Bug分支

  • git stash 储藏工作
  • Bug在哪个分支上,就从哪个分支上创建临时分支修复。修复完成之后,切换到相应分支,合并删除临时分支。
  • git stash list 查看stash
  • git stash apply 恢复(恢复后stash内容并不删除,需要用git stash drop来删除)
  • git stash pop 恢复的同时,也把stash删了。
  • git stash apply stash@{0} 恢复到制定的stash

Feature分支

  • 开发一个新feature,最好新建一个分支。
  • 如果要丢弃一个没有被合并过的分支,可以通过git branch -D <name>强行删除。

推送分支

  • git push origin <name> 把该分支上所有的远程操作提交到远程。
  • 在Git中分支可以在本地藏着玩,是否推送到远程视心情。

抓取分支

  • 当小伙伴从远程仓库clone时,默认只能看到本地的master。
  • git checkout -b dev origin/dev 创建远程origin的dev分支到本地。

当遇到冲突时

  • git branch --set-upstream dev origin/dev 建立本地dev分支与远程origin/dev分支的链接
  • git pull 把最新的代码抓下来,在本地合并之后,再推送。

多人协作的工作模式

因此,多人协作的工作模式通常是这样:

  1. 首先,可以试图用git push origin branch-name推送自己的修改;
  2. 如果推送失败,则因为远程分支比你的本地更新,需要先用git pull试图合并;
  3. 如果合并有冲突,则解决冲突,并在本地提交;
  4. 没有冲突或者解决掉冲突后,再用git push origin branch-name推送就能成功!
  5. 如果git pull提示“no tracking information”,则说明本地分支和远程分支的链接关系没有创建,用命令git branch --set-upstream branch-name origin/branch-name。

标签 不详细,参考

  • 切换到相应分支
  • git tag <name> 打标签
  • git tag 查看标签

搭建Git服务器 搭建Git服务器

重新修改.gitignore使其重新生效

  • git rm -r --cached . #清除缓存
  • git add . #重新trace file
  • git commit -m "update .gitignore" #提交和注释
  • git push origin master #可选,如果需要同步到remote上的话

相关文章

  • Git 学习之路

    Git 常用命令: 从远程仓库获取项目到本地 $ git remote add origingit@github....

  • Git 学习之路

    常用单词 HEAD --> 当前版本(HEAD^ --> 上一个版本,HEAD^^ --> 上上版本,HEAD~1...

  • Git学习之路

    为什么下定决心做下笔记,只是因为在公司使用git管理开发项目的时候,只会简单的几个命令,偶尔遇到问题也是在网上搜一...

  • Git 学习之路

    目录 clone add commit checkout pull push branch reset diff ...

  • git 学习之路

    windows 使用git & mac 使用git 1. 创建文件夹workspace 2.进入要管理的目录 右键...

  • git学习之路(git命令)

    初始化 提交代码 分支 合并代码步骤 比如我们要将 test 分支合并到 master 分支 分支拉取

  • 小白学git

    git学习之路 什么是git? git是一些命令工具的集合它可以用来追踪,记录文件的变动。它是采取分布式管理,分布...

  • git学习之路1

    git 本地基本命令

  • git的学习之路

    1、git init——初始化一个git仓库2、git add . 和git add 文件名——添加到本地仓库3、...

  • git学习之路 (代码合并)

    代码合并 现在我们有两个分支 test 和 master现在我们要将test分支合并到master分支上有两种方法...

网友评论

      本文标题:Git 学习之路

      本文链接:https://www.haomeiwen.com/subject/byvayftx.html