美文网首页
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 学习之路

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