美文网首页
Git学习笔记

Git学习笔记

作者: keaiduoduo | 来源:发表于2019-03-15 16:21 被阅读0次

注意:Git管理的是修改

fetch 抓取
push 推送

  • 推送分支
    就是把该分支上的所有本地提交推送到远程库。推送时,要指定本地分支,这样,Git就会把该分支推送到远程库对应的远程分支上
    比如:git push origin master
    如果要推送其它分支,比如dev,就改成:git push orgin dev
  1. 新建仓库(初始化一个仓库):git init
  2. 提交文件分两步:git add, git commit
  3. 要随时掌握工作区的状态,使用git status命令
  4. 如果git status告诉你有文件被修改过,用git diff可以查看修改内容。
  5. git log可以查看从最近到最远的提交日志
  6. 在Git中,使用HEAD表示当前版本,也就是最新的版本。上一个版本就是HEAD^,以此类推
  7. git reset --hard ,时空穿梭机
  8. git reflog用来记录你的每一次命令
  9. 从未添加过(add)的文件,状态是Untracked,添加了之后若被修改了,则是Changes not staged for commit状态。
  10. git add的命令实际上就是把要提交的所有修改放到暂存区(Stage),执行git commit就可以一次性把暂存区的所有修改提交到分支。

相关概念:

  • 工作区(Working Directory)
    就是在电脑里能看到的目录。
  • 版本库(Repository)
    工作区有一个隐藏目录.git,这个不算工作区,而是Git的版本库。


    工作区版本库关系图.png
  • 时光穿梭机
    版本回退:git reset HEAD <file>,既可以回退版本,也可以把暂存区的修改回退到工作区,当使用HEAD时,表示最新的版本。
    工作区和暂存区
    管理修改
    撤销修改:git checkout -- <file>
    删除文件
  • 远程库
  1. 要关联一个远程库,使用命令git remote add origin git@server-name:path/repo-name.git
  2. 关联后,使用命令git push -u origin master第一次推送master分支的所有内容;
  3. 此后,每次本地提交后,只要有必要,就可以使用命令git push origin master推送最新修改
  4. 从远程库克隆到本地:git clone https://github.com/EdwardCooler/gitskills.git
  5. 查看远程库信息,使用git remote -v
  6. 从本地推送分支,使用git push origin <branch-name>,如果推送失败,则一般都是因为远程分支比你的本地更新,需要先用git pull试图合并
  7. 在本地创建和远程分支对应的分支,使用git checkout -b branch-name origin/branch-name(本地和远程分支的名称最好一致)
  8. 如果git pull提示no tracking information,则说明本地分支和远程分支的连接关系没有创建,用命令git branch --set-upstream-to <branch-name> origin/<branch-name>。
  • 分支管理
    不同的分支可以理解为不同的指针。
    每次提交,Git都把它们串成一条时间线,这条时间线就是一个分支。截止到目前,只有一条时间线,在Git里,这个分支叫主分支,即master分支。HEAD严格来说不是指向提交,而是指向master,master才是指向提交的,所以,HEAD指向的就是当前分支。
    创建分支:git branch dev(创建dev分支)
    切换分支:git checkout dev(切换到dev分支)
    创建+切换分支:git checkout -b dev
    合并当前分支到dev:git merge dev
    当Git无法自动合并分支时,就必须首先解决冲突。解决冲突后,再提交,合并完成。解决冲突就是把Git合并失败的文件手动编辑为我们希望的内容,再提交。用git log --graph命令可以看到分支合并图。

  • 分支策略
    每个人都有自己的分支,每个人都在自己的分支上干活,最后在合并分支

  • Bug分支
    修复bug时,我们会通过创建新的bug分支进行修复,然后合并,最后删除。
    当手头工作没有完成时,先把工作现场git stash一下,然后去修复bug,修复后,再git stash pop回到之前的工作现场。

  • 标签管理
    tag就是一个让人容易记住的有意义的名字(就不再像commit的编号一样为混乱的字符),它跟某个commit绑在一起

git add 后撤销:
撤销所有add文件 git reset HEAD .
撤销单个add文件 git reset HEAD -filename
git commit 后撤销: 只回退commit的信息,保留修改代码:git reset --soft head 彻底回退到上次commit版本,不保留修改代码:git reset --hard head^ 说明: HEAD :当前版本 HEAD^ :上一个版本 --hard 参数会抛弃当前工作区的修改 --soft 参数的话会回退到之前的版本,但是保留当前工作区的修改,可以重新提交
撤销所有本地改动代码:
git checkout .
本地代码回退到与git远程仓库保持一致
git reset --hard 远程分支名
git push撤销
回滚此次push到服务器的代码:
git log查看commit的信息
git revert 以前commit的id
git push 此时本地回滚的代码到服务器就可以了
git merge 撤销
$ git checkout 【行merge操作时所在的分支】
$ git reset --hard 【merge前的版本号】

相关文章

  • 学习笔记| git深入浅出 Part1_快速操作指南

    Git专题 学习笔记| git深入浅出 Part1_快速操作指南 学习笔记| git深入浅出 Part2_Git...

  • git 入门

    git 入门学习笔记----3个入门命令:git init、git add、git commit -v 学习场景(...

  • git记录

    Git Magic图解gitgit 学习笔记git游戏(学习)1、消除文档路径中文乱码git config --g...

  • Git学习笔记--常用命令整理

    超实用Git学习笔记 Git全局配置git config --global user.name "用户名"git ...

  • Git常用命令与学习总结

    安装Git Git的下载地址:Git官网下载地址 学习网址 git 学习笔记- Book 在线练习地址 基础常用指...

  • git学习笔记(二)—— git的简单操作

    这是本系列学习笔记的第二篇git 学习笔记(一)—— 初识 git 前言 本篇文章将简要的介绍 Git 的一般操作...

  • 关于crlf

    Git学习笔记:Git设置CRLF(行尾换行符) git config --global core.autocrl...

  • GIT

    Git学习笔记 Git 与 Github对接: cd到当前文档 git init初始化git git add -A...

  • Git学习笔记

    git学习笔记 声明 本文是本人学习Git过程中所做的笔记,以便日后查阅,文中多有错漏之处,不建议用作学习材料,文...

  • Git学习笔记

    git 学习笔记 注册个人信息 git config --global user.name(你的用户名) git ...

网友评论

      本文标题:Git学习笔记

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