git的一些操作指令
1、 mkdir learn 创建learn文件夹(也可不用命令创建,直接右击新建即可)
cd learn进入learn文件夹
git init 把learn文件夹 变成 可以用git管理的仓库
1、添加文件到Git仓库,分两步:
第一步,使用命令
git add <file>,注意,可反复多次使用,添加多个文件;第二步,使用命令
git commit,完成
commit可以一次提交很多文件,所以你可以多次add不同的文件
git add命令实际上就是把要提交的所有修改放到暂存区(Stage),然后,执行git commit就可以一次性把暂存区的所有修改提交到分支
Git是跟踪修改,每次修改,如果不add到暂存区,那就不会加入到commit中。
2、提交修改和提交新文件是一样的两步,第一步是git add;同样没有任何输出。在执行第二步git commit之前,我们再运行git status看看当前仓库的状态:git status告诉我们,将要被提交的修改,下一步,就可以使用git commit提交了:提交后,我们再用git status命令看看仓库的当前状态:
要随时掌握工作区的状态,使用
git status命令。如果
git status告诉你有文件被修改过,用git diff可以查看修改内容。
3、git log命令显示从最近到最远的提交日志(历史记录)
4、回退到之前的版本使用git reset命令,在Git中,用HEAD表示当前版本,也就是最新的提交3,上一个版本就是HEAD^,上上一个版本就是HEAD^^,当然往上100个版本写100个^比较容易数不过来,所以写成HEAD~100。
回退到上一个版本:$ git reset --hard HEAD^
HEAD指向的版本就是当前版本,因此,Git允许我们在版本的历史之间穿梭,使用命令git reset --hard commit_id。穿梭前,用
git log可以查看提交历史,以便确定要回退到哪个版本。要重返未来,用
git reflog查看命令历史,以便确定要回到未来的哪个版本。
5、命令git checkout -- readme.txt意思就是,把readme.txt文件在工作区的修改全部撤销,这里有两种情况:
一种是readme.txt自修改后还没有被放到暂存区,现在,撤销修改就回到和版本库一模一样的状态;
一种是readme.txt已经添加到暂存区后,又作了修改,现在,撤销修改就回到添加到暂存区后的状态。
总之,就是让这个文件回到最近一次git commit或git add时的状态。
场景1:当你改乱了工作区某个文件的内容,想直接丢弃工作区的修改时,用命令git checkout -- file。
场景2:当你不但改乱了工作区某个文件的内容,还添加到了暂存区时,想丢弃修改,分两步,第一步用命令git reset HEAD file,就回到了场景1,第二步按场景1操作。
6、命令git rm用于删除一个文件。如果一个文件已经被提交到版本库,那么你永远不用担心误删,但是要小心,你只能恢复文件到最新版本,你会丢失最近一次提交后你修改的内容。
7、Git的杀手级功能之一:远程仓库。GitHub提供Git仓库托管服务的,所以,只要注册一个GitHub账号,就可以免费获得Git远程仓库。
要关联一个远程库,使用命令git remote add origin git@server-name:path/repo-name.git;
关联后,使用命令git push -u origin master第一次推送master分支的所有内容;
此后,每次本地提交后,只要有必要,就可以使用命令git push origin master推送最新修改;
分布式版本系统的最大好处之一是在本地工作完全不需要考虑远程库的存在,也就是有没有联网都可以正常工作。
8、要克隆一个仓库,首先必须知道仓库的地址,然后使用git clone 仓库地址命令克隆。
Git支持多种协议,包括https,但通过ssh支持的原生git协议速度最快。
9、查看分支:git branch
创建分支:git branch <name>
切换分支:git checkout <name>
创建+切换分支:git checkout -b <name>
合并某分支到当前分支:git merge <name>
删除分支:git branch -d <name>
当Git无法自动合并分支时,就必须首先解决冲突。解决冲突后,再提交,合并完成。
用git log --graph命令可以看到分支合并图
10、分支策略
在实际开发中,我们应该按照几个基本原则进行分支管理:
首先,master分支应该是非常稳定的,也就是仅用来发布新版本,平时不能在上面干活;
干活都在分支上,也就是说,分支是不稳定的,到某个时候,比如1.0版本发布时,再把分支合并到master上,在master分支发布1.0版本;
你和你的小伙伴们每个人都在分支上干活,每个人都有自己的分支,时不时地往分支上合并就可以了。
11、修复bug时,我们会通过创建新的bug分支进行修复,然后合并,最后删除;
当手头工作没有完成时,先把工作现场git stash一下,然后去修复bug,修复后,再git stash pop,回到工作现场。
12、开发一个新feature,最好新建一个分支;
如果要丢弃一个没有被合并过的分支,可以通过git branch -D <name>强行删除。
13、查看远程库信息,使用git remote -v;
本地新建的分支如果不推送到远程,对其他人就是不可见的;
从本地推送分支,使用git push origin branch-name,如果推送失败,先用git pull抓取远程的新提交;
在本地创建和远程分支对应的分支,使用git checkout -b branch-name origin/branch-name,本地和远程分支的名称最好一致;
建立本地分支和远程分支的关联,使用git branch --set-upstream branch-name origin/branch-name;
从远程抓取分支,使用git pull,如果有冲突,要先处理冲突。
项目要发布的时候,保存在master; 远程的develop分支保存大家当前的最新开发进度;其它分支都可以只在本地创建,皆为临时分支,需要上传的时候合并到develop分支
这是一种分支管理的惯用约定
git经常使用的场景:1、在github创建空白项目;2、在本地创建库、3、将本地库push到远程库;4、创建develop分支;5、创建并切换到本地工作分支 6、修改本地文件 7、加入暂存区并提交到本地库 8、切换到develop分支 9、合并临时分支 10、pull develop分支(因为其它人可能修改了develop分支,我们要处理这个) 11、将临时分支合并到本地的develop分支 12、将本地的develop分支 push到远程库
git add . :他会监控工作区的状态树,使用它会把工作时的所有变化提交到暂存区,包括文件内容修改(modified)以及新文件(new),但不包括被删除的文件。
选择本地的一个文件夹
git clone 远程仓库地址 远程仓库克隆到本地文件夹 但此时 这个文件夹不是git可以管理的仓库 使用git init 初始化该仓库 使之成为git可以管理的仓库
git的一些操作指令的更多相关文章
- Git常用的操作指令
修改最后一次提交 有时候我们提交完了才发现漏掉了几个文件没有加,或者提交信息写错了.想要撤消刚才的提交操作,可以使用--amend 选项重新提交: 1 $ git commit --amend -m& ...
- git中常见操作指令
从git上拉下一个项目: 1.git clone 项目链接 2. git checkout development (切换到development分支) ...
- git常用常用操作指令
GIT操作 1:git init 初始化空的仓库,会在当前文件夹生成一个隐藏.git的文件夹,相当于一个仓库. 2:提交代码的流程:工作代码区-->暂存区 -->主仓库 -->服务器 ...
- git的常用操作指令
git学习网址: http://www.backlogtool.com/git-guide/cn/intro/intro2_3.html 廖雪峰的git教程 git的工作区和暂存区(描述git的工作流 ...
- git 详细教程和常用操作指令
git 内部工作原理图 如上图,git 一般可以分为三个区:工作区.暂存区.版本库,通常类似 git add等命令都是与index 暂存区的交互,git commit指令则是 index 与版本库的交 ...
- git操作指令,以及常规git代码操作
安装git后操作指令如下:可以查阅git安装使用操作指南详情git安装使用操作图示详情.note 线上可参考指南:http://www.bootcss.com/p/git-guide/ 所有操作在 ...
- Git日常操作指令
1. 将本地项目上传到码云: ①. 码云上创建一个项目 ②. 本地文件项目内右键git bash进入git控制台 ③. git init 命令 -- 会在本地创建一个.git文件夹 ④. git ...
- git介绍和常用指令
Git介绍和常用指令 介绍:Git和SVN一样都是版本控制工具.不同的是Git是分布式的,SVN是集中式的.Git开始用可能感觉难点,等你用习惯了你就会觉得svn是有点恐怖.(如果一个项目有好多人一起 ...
- git命令行操作
从本地上传代码到仓库(假设已经建好仓库): 1.初始化: git init 2.将所有文件加入缓存区: git add * 3.提交当前工作空间的修改内容: git commit -m 'commit ...
随机推荐
- UVA10820 Send a Table
嘟嘟嘟 [欧拉函数] 大致题意:如果知道f(a, b),就可以求出f(a * k, b * k).现给出一个n,求至少需要知道几个二元组(a, b),使所有的f(x, y)都能求出来.(1 <= ...
- Yii2.0随笔 路由
1.去掉index.php,按照pathinfo模式访问 例:http://***.com/控制器/方法 (1)把web服务器的网站目录指向所在模块的web目录 (2)在main.php的 'comp ...
- Visual Studio2015无法启动IIS Express Web 服务器的解决方案
有时通过VS2015启动项目会弹出提示框:无法启动IIS Express Web服务器 出现这种提示框有可能是因为此项目的解决方案是从别人电脑中拷贝过来的,所以启动会出现错误. 解决办法就是删除解决方 ...
- ffmpeg 从mp4上提取H264的nalu
转自http://blog.csdn.net/gavinr/article/details/7183499 1.获取数据 ffmpeg读取mp4中的H264数据,并不能直接得到NALU,文件中也没有储 ...
- NopCommerce 3.4中商品详情页面单选框、复选框的美化
先上图给大家看看效果,点这里打开网站(后期可能会找不到这个商品,现在再测试阶段) 现在你能看到的这个页面中,尺寸.文本描述是单选框(属性是我乱写的名字),上门安装是复选框.效果就看到这里,请君跳过图片 ...
- 前端基础-CSS的属性相关设置
一 字体属性 二 文本属性 三 背景属性 四 盒子模型 五 盒子模型各部分详解 一. 字体属性 1.font-weight:文字粗细(表格中*为重点) 取值 描述 normal 默认值,标准粗细 ...
- 若是将Map作为Key,存入Redis,该如何操作?
1.先封装HashMap Map<String,Object> map=new HashMap<String,Object>(); map.put("name&quo ...
- 国产Linux下开发正式开工(deepin)
配置开发环境 1.一般工具 在深度商店安装QQ,微信,安装一般软件WPS,Navicat数据库工具,文本编辑notepadqq. 影视娱乐爱奇艺,优酷,酷狗. 2.安装主要的开发环境 (1)c# 深度 ...
- ABAP术语-RFC (Remote Function Call)
RFC (Remote Function Call) 原文:http://www.cnblogs.com/qiangsheng/archive/2008/03/12/1101581.html RFC ...
- Linux Centos6.5 升级默认Python2.6.6到Python2.7.13
以下例子基于python 2.7.9,其他版本同理.大致的命令都是差不多的,安装完成之后,输入Python --vertion ,看到系统默认的版本已经替换为2.7版本了 1.下载python wge ...