git梳理
http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000
本地库管理命令
git init
创建版本库repository
git status
此时目录下多了一个.git文件夹,里面存储了若干自动生成的文件,用来记录修改信息、暂存区信息等。
git add <file>
为批量或者单独向暂存区提交做准备。修改之后的文件,在add之前的状态是:Changes not staged for commit。在add之后的状态是:Changes to be committed
git commit -m ‘...’
将之前add的内容,从工作区添加到暂存区.将所有的变动都提交之后,git status 的状态会变成nothing to commit (working directory clean)
git checkout -- <file>
如果要撤销工作区(working derectory)的修改,并且还没有add到暂存去,使用git checkout --<file>可以将暂存区当前的内容回复到工作区
git reset HEAD <file> 结合 git checkout -- <file>
如果错误的修改已经add到暂存区,那么首先利用git reset hEAD <file> 将暂存区的add撤销,之后在用git checkout -- <file>将暂存区恢复到工作区
git reset --hard commit_id
如果错误修改已经commit,想要恢复到某一个版本,使用上述命令,其中commit_id可以使用,git log或者git reflog来查找
git rm <file> 结合git commit -m ''
如果确实要删除某个文件,那利用git rm <file> 删除工作区中的文件,最后再用git commit -m'' 将删除提交,此时版本库才算彻底删除
如果是本地的rm命令不小心删除了工作区的某个文件,那么利用gm checkout -- <filename>就可以将版本库中的文件恢复到工作区
分支管理
git branch <branchName>
该命令用于创建分支
git checkout <branchName>
该命令用于切换分支
git branch -b <branchName>
创建并切换分支
git merge <branchName>
将branchName 对应的内容,合并到当前分支上,如果合并后有冲突,那么将冲突部分进行修改,之后重新提交
如果在分支合并到master之前,想要删除该分支,可以利用git branch -D <branchName>进行强制删除
git branch -d <branchName>
删除branchName分支
git branch -D <branchName>
强制删除branchName 分支
git stash 结合 git stash list 结合 git stash apply 或者 git stash pop
保存当前的工作区,通常用于现在的工作还没有完成,来不及提交的情况下,需要开辟其他分支完成其他任务,之后可以利用git stash list 来查看存储的工作现场,在合适的时候再利用git stash pop或者git stash apply恢复工作现场(后者还需要利用git stash drop来输出list中的stash)
远程仓库
本地库和远程库的构建及关联
如果是现有本地库,要依据本地库构造远程仓库
1)登录github,选择create a new repo,创建一个远程仓库
2)之后在本地的版本库目录下运行目录,添加一个远端 git remote add origin git@github.com <username>/<原创仓库名.git>
3) 将本地库的内容推送到远端 git push -u origin master(第一次推送的时候,使用-u参数,该参数首先将本地的master分支和远端的master分支进行关联,之后再进行推送,在之后的推送中,就不再需要-u参数)
经过测试,有时候需要执行这个命令
git branch --set-upstream-to=origin/master master
如果是先有远程库,要依据远程库构建本地库
此时相对简单,使用git clone命令即可 git clone git@github.com:<username>/<远程库名>.git
不过注意此时复制的仅是远程的master分支,其他分支可以参见下面的讲解
和远端进行交互
git remote 或者 git remote -v
查看远端版本库的信息
git push origin <branchName>
向远端推送某个分支(事先需要建立对应分支间的关联,这样才能自动推送到对应的分支)
一般本地和远端的master分支在构建版本库的时候就关联好了,对于clone命令,一般本地只能复制远端的master分支。如果想要在其他分支上开发,以dev分支为例:
1)在本地创建dev分支
git checkout -v dev origin/dev
2)但是这样,还没有建立本地的dev分支和远程dev分支之间的关联,使用下面的命令建立关联
git branch --set-upstream dev origin/dev
建立起关联之后
git push origin <branchName>
就是向远端推送branchName分支对应的内容
git pull
就是从当前本地工作的分支对应的远端分支拉取内容
冲突解决
从本地推送分支,使用git push origin <branch-name>,如果推送失败,那么首先利用git pull 拉取内容,在本地解决冲突后再提交
标签管理
git tag -a <tagName> <commit_id> -m'说明文字'
给某个提交版本打上标签,如v1.0
git tag
查看所有标签
git show <tagName>
查看指定的标签
git push origin <tagname>
向远端推送一个标签
git push origin --tags
向远端推送所有标签
git tag -d <tagName>
删除一个本地的标签
git push origin : refs/tags/<tagName>
删除一个远端的标签
git梳理的更多相关文章
- Git分支管理的策略梳理
当下最流行的版本管理系统应该是非Git莫属.相比同类软件,Git有很多优点,其中很显著的一点,就是版本的分支(branch)和合并(merge)十分方便.有些传统的版本管理软件,分支操作实际上会生成一 ...
- Git常用命令梳理
在日常的Git版本库管理工作中用到了很多操作命令,以下做一梳理: 查看分支列表,带有*的分支表示是当前所在分支 [root@115~~]#git branch 查看分支详细情况 (推荐这种方式) [r ...
- Git 常用命令和 Git Flow 梳理
git 用 git 有一段时间了,之前没有详细地了解 git flow,导致协作过程中或多或少出现了一些头疼问题.最近静下心来理了下 git flow 的整个流程,再回头看开朗了不少,总结到这里.介绍 ...
- 梳理git分支管理策略
如果你严肃对待编程,就必定会使用"版本管理系统"(Version Control System). 眼下最流行的"版本管理系统",非Git莫属. 相比同类软件, ...
- Git忽略规则.gitignore梳理
对于经常使用Git的朋友来说,.gitignore配置一定不会陌生.废话不说多了,接下来就来说说这个.gitignore的使用. 首先要强调一点,这个文件的完整文件名就是".gitignor ...
- GIT入门笔记(20)- 使用eclipse 基于 git 开发过程梳理
一.创建本地分支 1.下载/更新 本地 主干 如果本地还没有 本地主干,下载:git clone 如果本地已有了 本地主干,更新:git pull 工程右键菜单:team -> pull 2.基 ...
- GIT入门笔记(20)- git 开发提交代码过程梳理
git开发提交流程新项目开发,可以直接往master上提交老项目维护,可以在分支上修改提交,多次add和commit之后,也可以用pull合并主干和本地master,解决冲突后再push 1.检出代码 ...
- SVN和Git对比梳理
在日常运维工作中,经常会用到版本控制系统,目前用到最广泛的版本控制器就是SVN和Git,那么这两者之间有什么不同之处呢?SVN(Subversion)是集中式管理的版本控制器,而Git是分布式管理的版 ...
- Git版本控制器使用总结性梳理
Git为何物?Git 是什么?大家肯定会说不就是版本控制器嘛,是的Git是目前世界上最先进的分布式版本控制系统(没有之一).1)那什么是版本控制器?举个简单的例子,比如我们用Word写文章,那你一定有 ...
随机推荐
- Postman之前言
Postman是一款流行的接口api调试/测试工具.几乎可以发送大多数的HTTP请求. 1.依据开发提供的接口文档,对接口进行测试. 2.如果是自己学习,可以网上找一些免费的接口进行学习,或者抓包 - ...
- luogu P4365 [九省联考2018]秘密袭击coat
luogu 这里不妨考虑每个点的贡献,即求出每个点在多少个联通块中为第\(k\)大的(这里权值相同的可以按任意顺序排大小),然后答案为所有点权值\(*\)上面求的东西之和 把比这个点大的点看成\(1\ ...
- Ubuntu18.10中pip install mysqlclient 出现EnvironmentError: mysql_config not found错误
Complete output from command python setup.py egg_info: sh: 1: mysql_config: not found Traceback (mos ...
- 从命令行运行postman脚本
为什么要在命令行中运行 可以在无UI界面的服务器上运行 可以在持续集成系统上运行 运行准备 导出collection 安装nodejs和npm(或cnpm) 安装Newman 运行及生成测试报告支持4 ...
- Java注解的继承
注解继承的说明 1.首先要想Annotation能被继承,需要在注解定义的时候加上@Inherited,并且如果要被反射应用的话,就需要还有个事@Retention(RetentionPolicy.R ...
- 从FBV到CBV四(访问频率限制)
比如我们有一个用户大转盘抽奖的功能,需要规定用户在一个小时内只能抽奖3次,那此时对接口的访问频率限制就显得尤为重要 其实在restframework中已经为我们提供了频率限制的组件 先捋一下请求到AP ...
- poj1740 A New Stone Game[博弈]
有若干堆石子,每一次需要从一堆石子中拿走一些,然后如果愿意的话,再从这堆石子中拿一些(揣度题意应该是不能拿出全部)分给其它任意不为空的堆.不能操作的人为负. 一直不会博弈啊..感觉完全就是个智商题,虽 ...
- html背景图不随滚轮滚动,而且按住Ctrl并滚动滚轮时,图片不会变大缩小,就像百度的首页一样
之前在百度知道我提问过这一个问题,后来解决了.不过好多人来问我时怎么解决的,源码.其实很简单.这里我贴一下代码.有需要的小伙伴不用再加我qq了,直接来这里取吧. 里面的图片是我随便找的. <!D ...
- DevExpress ASP.NET Bootstrap v19.1版本亮点:Editors控件
行业领先的.NET界面控件DevExpress 正式发布了v19.1版本,本文将以系列文章的方式为大家介绍DevExpress ASP.NET Bootstrap Controls中Editors.G ...
- Acwing-116-飞行员兄弟(二进制枚举)
链接: https://www.acwing.com/problem/content/description/118/ 题意: "飞行员兄弟"这个游戏,需要玩家顺利的打开一个拥有1 ...