美文网首页
git 学习笔记

git 学习笔记

作者: Hesey | 来源:发表于2017-11-14 13:18 被阅读0次

工作区 < - 缓冲区 <- 版本库

提交代码的更改一共分2个阶段。

  • 1.从工作目录,提交到stage。
  • 2.从stage提交到master。

从工作目录提交到stage,需要用add或者rm命令,只提交到stage,而没有提交到master,是不会自动同步到master的。
从stage提交到master用commit命令。

两种回退操作:

  • 1.stage回退到工作目录, 是用来取消提交操作的;
  • 2.master回退到工作目录, 是用来回滚操作的;

撤销修改
git checkout -- xxx 让这个文件回到最近一次git commit或git add时的状态。
git reset HEAD xxx可以把暂存区的修改撤销掉

  • 场景1:当你改乱了工作区某个文件的内容,想直接丢弃工作区的修改时,用命令git checkout -- file。
  • 场景2:当你不但改乱了工作区某个文件的内容,还添加到了暂存区时,想丢弃修改,分两步,第一步用命令git reset HEAD file,就回到了场景1,第二步按场景1操作。
  • 场景3:已经提交了不合适的修改到版本库时,想要撤销本次提交,参考版本回退一节,不过前提是没有推送到远程库。
git init 初始化仓库 
git add 添加文件
git commit -m "描述" 上传文件
git status 查看状态
git dif 查看区别

git reset --hard HEAD^ 恢复到上一个版本
git reset --hard HEAD^^ 恢复到上上一个版本
git reset --hard HEAD~100 恢复到100之前的版本
git log #查看当前版本及之前版本的id 加--pretty=oneline简化显示
git log --pretty=oneline
git reflog #查看所有版本的id
git reset --hard xxx 根据git reflog得到的编号恢复到那个版本

删除文件

git rm xxx
git commit -m "remove test.txt"
删除错误要还原
git checkout -- xxx
git checkout其实是用版本库里的版本替换工作区的版本,无论工作区是修改还是删除,都可以“一键还原”。
已有的本地仓库与之关联
git remote add origin git@github.com:jianpingye/learngit.git
去除本地仓库与远程仓库的关联
git remote rm origin
git push -u origin master本地库的所有内容推送到远程库上 第一次
git push origin master本地库的所有内容推送到远程库上 

git clone克隆一个本地库
git remote查看远程库的信息
git remote -v 显示更详细的信息
git push origin branch-name从本地推送分支
git checkout -b branch-name origin/branch-name在本地创建和远程分支对应的分支
git branch --set-upstream branch-name origin/branch-name建立本地分支和远程分支的关联

创建分支

git checkout -b dev   git checkout命令加上-b参数表示创建并切换,相当于以下两条命令:
git branch dev 创建分支
git checkout dev 却换分支
git branch命令查看当前分支
git merge命令用于合并指定分支到当前分支
git branch -d dev删除分支

查看分支:git branch
创建分支:git branch <name>
切换分支:git checkout <name>
创建+切换分支:git checkout -b <name>
合并某分支到当前分支:git merge <name>
删除分支:git branch -d <name>
强行删除:git branch -D <name>

分支冲突:合并时显示分支冲突先merge 后修改<<<<分支1 <<<<分支2 之间的冲突内容,然后在提交. 当前分支会比被合并的分支多commit一次
git log --graph --pretty=oneline --abbrev-commit  #查看分支情况
git merge --no-ff <name>  #禁用Fast forward,不删除分支,合并后保留分支

BUG分支:正在dev分支工作,需要修改bug并提交,应该先把dev当前工作区stash储藏起来.修改完bug提交后在使用 git stash pop恢复dev的内容到工作区.
git stash #储藏当前工作区
git stash list #查看
git stash apply <stashid> #恢复指定内容到工作区,不在stash内删除..stashid通过git stash list查询
git stash drop <stashid>  #删除
git stash pop  #恢复stash的内容到工作区,并在stash内删除

git tag <name>新建一个标签,默认为HEAD,也可以指定一个commit id;
建带有说明的标签,用-a指定标签名,-m指定说明文字
git tag -a <tagname> -m "blablabla..."可以指定标签信息;

可以通过-s用私钥签名一个标签:
git tag -s <tagname> -m "blablabla..."可以用PGP签名标签;
git tag可以查看所有标签。
git push origin <tagname>可以推送一个本地标签;
git push origin --tags可以推送全部未推送过的本地标签;
git tag -d <tagname>可以删除一个本地标签;
git push origin :refs/tags/<tagname>可以删除一个远程标签。

更新

git fetch:相当于是从远程获取最新版本到本地,不会自动merge
git fetch origin master
git log -p master..origin/master
git merge origin/master

首先从远程的origin的master主分支下载最新的版本到origin/master分支上
然后比较本地的master分支和origin/master分支的差别
最后进行合并
git pull:相当于是从远程获取最新版本并merge到本地
git pull origin master
上述命令其实相当于git fetch 和 git merge
在实际使用中,git fetch更安全一些
因为在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/rjoxvxtx.html