git开发实战:认识git
git简介:
git是分布式版本控制系统,相比较svn相比,git会在本地保存完整的提交记录,即使远程服务器宕机数据消失,可以将本地分支提交到远程服务器,本地分支会保存完整的记录。只要文件提交到git中,就能保证这个文件永远不会丢失,可以根据提交id来找到这个文件。
git上每次提交记录会记录上次提交的id,git是保存和当前提交文件和前一个提交文件对比,来保存,这样减少保存的空间。
git的文件状态分为3中:
已修改--已修改文件是保存在当前工作区,
已暂存--将工作区修改的文件保存到缓存区中
已提交--将缓存区中的文件提交到对象库
git设置用户名可以分为3中,分别是全局、用户和本项目,在具体项目中使用哪个用户优先的优先级逐渐降低
针对系统:git config --system user.name 'system name'
针对用户:git config --global user.name 'global name'
针对项目:git config --local user.name 'local user'
git简单命令
1. git init 初始化本地仓库
2. git add . 将工作区修改的文件保存到缓存区中 git add hello.txt
3. git commit 将缓存区中的文件添加到对象库 git commit -m '添加hello.txt文件'
git reset --hard commit 回退到commit位置 ,在推送远程分支 git push -f 因为远程分支比本地分支commit提前,所以要强制推送,丢失commit后的提交
git revert -n commit,反做commit版本,不会影响后面操作 git commit -m "revert add text.txt" git push 提交并推送,只丢失
revert相当于逆向操作,回退到上一步commit的内容
4. git status 查看文件状态
git rm hello.txt 删除文件 rm hello.txt删除文件
5. git rm --cached hello.txt 将添加到缓存区中的hello.txt文件回退到工作区
6. git HEAD hello.txt 另外一种将缓存区的文件回退到工作区
7. git log 查看提交日志 git log -2 查看最近两次提交日志
git log pretty=online 日志以一行显示
git log --graph 以图型化显示提交记录
git reflog 记录所有的操作日志
8. git branch 查看所有分支
git branch newbranch 创建新分支
git checkout newbranch 切换到新分支
git checkout -b newbranch2 新建并切换分支
9. git merge newbranch 将newbranch分支内容合并到本分支上
git merge --no-ff dev 以提交的方式合并分支
合并时如果new分支内容高于现在分支的内容,即new分支在本分支基础上还有提交,这时将采用fast ford快速合并
合并时如果不是上面的情况,可能会存在冲突,当冲突时,需要手工解决冲突
10. git branch -m dev1 devlop 将dev1分支修改为devlop
11. git stash 保存当前分支修改的内容临时保存
git stash list 列出stash内容
git stash pop 先恢复,再将已恢复的stash删除
git stash apply 恢复stash,但不删除
git stash drop stash{0} 删除stash0
git stash -m '设置保存当前stash备注'
12. 标签
git tag v1.0
git tag v2.0 -m '这时带有注释的标签'
git tag -d v1.0 删除v1.0标签
git tag 列出所有标签 git tag -l ‘*2’ 列出标签结尾是2的所有标签
13 diff
git diff 比较工作区和缓存区文件之间不同
git diff HEAD 比较工作区和最近一次提交文件的不同
git diff -cached 比较最新提交和缓存区文件不同
14 git pull git push
git remote add origin git地址
git push -u origin master 推送
git pull 拉取最新分支,git fetch+git merge
git push 推送最新分支,git fetxh+git merge
git remote show 显示远程分支 git remote show origin 详细显示origin分支
git同一个分支会存在3份,分别是本地分支,本地远程分支(远程分支,只读),远程分支,
在pull时,首先将远程分支的最近一次提交id同步给本地远程分支,然后后本地远程分支和本地分支合并(可能会产生冲突),提交时也是这样。
15. 将本地分支推送到远程分支上
git push origin src:desc 将本地的src分支内容,推送到远程desc分支
git push origin :desc 将空分支推送到远程,远程分支被删除
git push origin --delete dev 删除分支
git push --set-upstream origin dev1:dev2 将本地的dev1分支创建到远程的dev2分支上
16 远程分支修改名字只能先删除分支,再将本地分支推送大远程分支上
17 建议本地分支和远程分支名一致
git开发实战:认识git的更多相关文章
- git开发实战:问题解决
git作为一个高效的开发协作工具,其版本管理和分支管理是其高效管理代码的体现.但是我们在平时开发中,往往要一边修着bug一边做着新功能,这样有可能就会遇到以下几种场景 1.改完bug忘记切换分支了,代 ...
- Git详解之一 Git实战
Git详解之一 Git实战 入门 本章介绍开始使用 Git 前的相关知识.我们会先了解一些版本控制工具的历史背景,然后试着让 Git 在你的系统上跑起来,直到最后配置好,可以正常开始开发工作.读完本章 ...
- Git 命令实战入门 ,奶妈级教程
我不会用*官方*的语言告诉你Git 是什么,对此我表示深深得歉意--在我看来像CSDN.博客园.掘金等博客交流平台就是小的“GitHub”,只不过在这里更多的是一些零零散散的笔记或者文章,其实Gihu ...
- git 开发merge rebase 记录
git status git lg git add src/ git commit -m "restful api and portal" //先commit到自己的本地branc ...
- git开发流程、常用命令及工具、TortoiseGit使用及常见问题
根据我最近使用git的一些经历,git是基于分支的版本控制工具,分支有远程分支和本地分支. 一.开发流程 - 从远程服务器的master,clone一份项目文件到本地,然后本地master的基础上br ...
- fir.im Weekly - iOS开发中的Git流程
本期 fir.im Weekly 收集了微博上的热转资源,包含 Android.iOS 开发工具.源码等好用的轮子,还有一些 APP 设计的 Tips,希望对你有用. 精仿知乎日报 iOS 端 @我偏 ...
- iOS开发——源代码管理——git(分布式版本控制和集中式版本控制对比,git和SVN对比,git常用指令,搭建GitHub远程仓库,搭建oschina远程仓库 )
一.git简介 什么是git? git是一款开源的分布式版本控制工具 在世界上所有的分布式版本控制工具中,git是最快.最简单.最流行的 git的起源 作者是Linux之父:Linus Bened ...
- Windows下搭建Git开发环境
Windows下搭建Git开发环境主要有以下三种方法: 1,VS,vs2013和vs2015中已经集成了git插件了 2,msysGit+TortoiseGit 3,msysGit+SourceTre ...
- [git]git开发流程
git开发正确做法: 本地要有一个分支A和远端的分支保持对应 然后本地新开分支B开发,提交记录 如果需要将代码推送到远端的话,就切换回A,首先在A分支上pull同步远端的代码(pull还是fetch+ ...
随机推荐
- Java NIO 缓冲区
Java NIO 在JDK1.4的时候引入,主要解决传统IO的一些性能问题.NIO 主要内容包含 Buffer .Channel.Selector等内容,本文主要讲解Buffer相关的内容. Buff ...
- Cookie/Session/Local Storage/IndexedDB
本文主要总结客户端/浏览器端数据存储的技术. 在客户端或者浏览器端存储,可以快速的访问页面,当前主要有Cookie,Session,Local Storage,IndexedDB四种(WebSQL呗废 ...
- Codeforces 1000E We Need More Bosses (边双连通+最长链)
<题目链接> 题目大意:给定一个$n$个节点$m$条边的无向图,问你对任意两点,最多有多少条特殊边,特殊边指删除这条边后,这两个点不能够到达. 解题分析: 特殊变其实就是指割边,题意就是问 ...
- git-vi
VI命令可以说是Unix/Linux世界里最常用的编辑文件的命令了,但是它的命令集太多,所以要想精通他,也是一件很不容易的事情,除了专业SA,对于我们开发人员而已只需要掌握一些最最常见的用法应该就可以 ...
- 谁动了我的内存:php内存泄露,系统缓存消耗? 转摘:http://blog.csdn.net/tao_627/article/details/9532497
http://www.laruence.com/2011/03/04/1894.html 前言:持续我一贯的标题党作风,说说例子解决方案,没有深入探讨. 情景:线上图片服务压缩的图片品质(100),缩 ...
- Css3-颜色 color
一.颜色 RGBA RGB是一种色彩标准,是由红(R).绿(G).蓝(B)的变化以及相互叠加来得到各式各样的颜色.RGBA是在RGB的基础上增加了控制alpha透明度的参数. 语法:color:rgb ...
- javascript跨浏览器操作xml
//跨浏览器获取xmlDom function getXMLDOM(xmlStr) { var xmlDom = null; if (typeof window.DOMParser != 'undef ...
- R语言控制流
一般来说R语言是自上而下执行的,但是遇到特殊情况可能用到循环执行某些语句,这时候条件运算和循环就能派上用场了.
- 第十五章 Kubernetes调度器
一.简介 Scheduler 是 kubernetes 的调度器,主要的任务是把定义的 pod 分配到集群的节点上.听起来非常简单,但有很多要考虑的问题: ① 公平:如何保证每个节点都能被分配资源 ② ...
- ubuntu 安装phpunit
一.下载安装 wget https://phar.phpunit.de/phpunit-7.2.phar chmod +x phpunit-7.2.phar sudo mv phpunit-7.2.p ...