git学习篇-01

一:什么是git
分布式版本控制系统。保存某一时刻,某些文件内容快照的系统。
其中有集中式的版本控制系统,例如:SVN. 集中式将文件的内容/版本信息/修改信息都保存在一个中央服务器中。使用者将特定版本的文件内容拷贝到本地进行操
作,问题在于单点故障,当服务器或者网络出现问题,那么所有的版本都访问不了,并且对比,提交代码都进行不了。svn保存的是每一次的变化。
分布式的版本控制系统,例如:git. 使用者将整个系统代码都复制到本地仓库中,相当与中央服务器在某个特定时间的一个完整备份。这样远程服务器就起到了一个保
存与交换代码的作用。是目前使用最广的一个分布式版本控制系统。git会给每一个版本一个完整快照。版本之间切换较快。
二:git工作流。
三种状态:已修改(工作区),已暂存(暂存区),已提交(本地仓库)。
git的一大特色是分支开发。冲突的情况减少
一般的开发流程:
创建仓库(/从远程仓库克隆)--》创建并切换到特定分支--》创建/修改文件--》提交工作区文件到暂存区--》提交暂存区文件到本地仓库--》切换到主分支--》
合并特性分支到主分支--》推送本地仓库到远程仓库。
三:举例
项目中将远程服务器的内容克隆下来:
git clone [email protected]。。。。。。。。。。。。 //这样就克隆到本地
cd gittest //进入这个文件夹,默认在master分支上。
git branch //在master分支上。一般没有这个权限,需要切换到自己的分支
git checkout -b dev4//这样就创建了一个新的分支。
git branch //切换到自己刚建立的分支。
vim new //新建文件 --》add 1
git status //查看状态。
git add new //由工作区换到暂存区
git commit -m ‘new‘ //由暂存区到本地仓库
git push -u origin dev4 //由本地仓库推送到远程服务器。
git diff //查看不同分支之间的差别。
四:当当前分支与master分支有冲突的时候。
需要合并到分支。
git merge origin master //确保将master的内容合并到分支。没有问题后再 git push.
五:让部分文件不上传
方式是:vim .gitignore(有模板,將不想上傳的文件夾写道里面)
六:git常用的命令
1.git init :创建空的本地仓库,或者对存在的仓库进行初始化。
创建文件夹,进入,git init.
建立好一个空的本地仓库以后可以与远程的仓库进行关联:
git remote add origin 仓库地址。
git remote 既可以查看关联的远程仓库
git remote -v 可以查看详细的信息。
重命名关联的远程仓库:
git remote rename origin o
删除关联的远程仓库:
git remote remove o
2.git clone 克隆远程仓库
3.git remote 管理远程库。
首先在gitlab上建立好远程库,复制地址,然后在本地链接:git remote add origin 地址
git remote --help
4.git reflog 记录所有操作记录。只存在于使用者的本地仓库。会记录提交以及其他操作比如换分支。
5.git log 本地以及远程仓库都有。查看提交历史。只记录提交。
6.git status 查看状态,自己感觉更像是一种监听。如果这之间新建过文件,再次git status时会提示,可以进行 git add 文件 是将文件由工作区转到暂存区。
然后就可以提交,git commit -m ‘一种记录的消息‘ 文件,会提示push到服务器。
7.git config:配置
git config --add user.name .....//加名字
git config --add user.email ....//加邮箱
利用git config -e进行查看更改内容。
8.git diff //默认显示工作区与暂存区工作的差异
git diff --staged //比较暂存区与本地仓库的差异
9.git add //由工作区提交到暂存区
10.git commit //暂存区提交到本地仓库
11.git push //本地仓库提交到服务器
git push -u origin branch2 //这个不是很理解,目的是设置为跟踪来自origin的远程分支branch2.
git log 中记录着很多东西,可以进行相互比较。方式是:git diff 不同提交的码
git diff 不同的分支
切换分支命令:git checkout 分支名。
12.git pull //拉取远程仓库到本地仓库并合并到本地仓库。git branch 查看当前分支。相当与先fetch,然后再merge。
13.git fetch 是将远程服务器的文件复制到本地仓库,对本地工作区的文件没有影响。
git merge :是将本地仓库中的文件合并到本地工作区中。意思就是说没有merge前,本地仓库中的数据与本地工作区的数据有可能是不一样的,但是merge以后
就统一了。
冲突情况下的合并取消:
git merge --abort
14.git branch :显示所有的分支,并且标注出当前所属的分支。新建分支:git branch 分支名。
删除分支:git branch -d 分支名
查看分支的详细信息:git branch -v
新建一个分支然后就进入这个分支:git checkout -b branch44
将本地文件还原为本地仓库:
git checkout --hello.py
将某文件还原为上一次的提交:
git checkout HEAD~ hello.py
还原为最近的一次提交:
git checkout HEAD hello.py
15.git reset:重置HEAD到指定的状态(HEAD为当前的分支)
git reset --mixed HEAD~ //默认是--mixed,是将本地仓库的上一个版本复制到暂存区,而不会修改工作区的内容。
git reset --hard HEAD~ //将本地仓库的内容复制到暂存区与工作区中,这个需要注意。删除不可逆。
git reset --soft HEAD~ //只是将指针指到了上一个版本,不会复制到任何地方。
git diff --cached//查看暂存区与本地仓库的区别。
16.git revert 版本号 ://撤销一些已经存在的提交
17.git cherry-pick//用于把某次提交的内容合并到当前分支。
18.git rebase//用于把一个分支的修改合并到当前分支。

原文地址:http://blog.51cto.com/5367819/2084339

时间: 2024-10-09 20:51:59

git学习篇-01的相关文章

Git学习笔记01 从GitHub克隆版本库

步骤一  首先你得有个GitHub帐号 GitHub是为数不多没有被墙的国外技术网站之一,码农之友. 如果要进一步学习Git与远程版本库之间的操作,这一步是必须做的.当然,如果有GitLab帐号也是同样的道理. 具体怎么注册,我想搞技术的你应该没有问题.由于是纯英文的教程,真的不明白,可以问问度娘. 跟着教程创建属于你自己的版本库,到这里你就迈出了Git之旅的第一步.喝彩! 步骤二  生成SSH连接密钥 本教程不使用HTTPS(HTTP Security)协议,而是使用更为安全的SSH(Secu

pythonchallenge之C++学习篇-01

前言 最近学习下C++,之前是python的用户,python解释器有诸多实现,其中最出名的要数C实现了,而且很多python的扩展模块可能要用C或者C++来写的,所以很有必要学习下C++了 为了避免学习语法的无聊,把pythonchallenge拿来练练手,什么?不知道这是什么?想想办法吧 我的C++环境:windows mingw中的GCC编译器 代码编辑sublime 第一关: 目的:让计算2的38次方 解决方案: 1 # include <iostream> 2 # include &

[git 学习篇] git remote add origin错误

http://blog.csdn.net/dengjianqiang2011/article/details/9260435 如果输入$ Git remote add origin [email protected]:djqiang(github帐号名)/gitdemo(项目名).git 提示出错信息:fatal: remote origin already exists. 解决办法如下: 1.先输入$ git remote rm origin 2.再输入$ git remote add ori

Git学习篇之git remote add origin错误

提示出错信息:fatal: remote origin already exists. 解决办法如下: 1.先输入$ git remote rm origin 2.再输入$ git remote add origin git@github.com:djqiang/gitdemo.git 就不会报错了! 3.如果输入$ git remote rm origin 还是报错的话,error: Could not remove config section 'remote.origin'. 我们需要修改

java基础学习篇01

从事了java2年开发,后来发现自己除了在网上抄袭代码之外就一无是处了,还没有在学校培训的时候那样子还愿意花时间去研究新技术,连最基础不常用的都快忘记了. 所以开始重新从最基础的开始回顾一遍,写一些博客来记录自己的学习过程. java基础语法 1.输出错误与调试信息 System类是一个用final修饰的一个类,不能被继承,没有子类.不能被实例化,因为构造方法是私有的. 包名:java.lang 帮助文档对包的描述是:提供对java编程语言的设计基础课. 全限定类名:java.lang.Obje

iOS-H5学习篇-01

什么是HTML? HTML 是用来描述网页的一种语言. 0.HTML 指的是超文本标记语言 1.HTML 不是一种编程语言,而是一种标记语言 2.标记语言是一套标记标签 3.HTML 使用标记标签来描述网页 //HTML基本组成 1.<html> 与 </html> 之间的文本描述网页 2.<body> 与 </body> 之间的文本是可见的页面内容 3.<h1> 与 </h1> 之间的文本被显示为标题 4.<p> 与 &

【自制CPU之学习篇01】识别四色环电阻

制作CPU的好多部分都用到了各种阻值的电阻,由于我选购的是色环电阻,即电阻表面涂上一定颜色的色环,来代表这个电阻的阻值.因此通过色环来快速识别电阻阻值需要作为储备知识,不然一堆电阻插在面包板上很快就乱了.下图为我选购电阻的实拍图. 四色环电阻计算: 色环电阻有四色.五色.六色三种,我选购的为四色环电阻,因此下面介绍一下四色换电阻的计算方式. 四色环电阻的前三环的颜色范围都是:黑0 棕1 红2 橙3 黄4 绿5 蓝6 紫7 灰8 白9:第四环的颜色范围是:金5%, 银10%,无20%,代表误差.各

Git学习——Git分支篇(未完)

Git学习--Git分支篇(未完) 前言 完成了Git学习的基础篇,继续学习Git的分支特性,这是Git出众之处. 目录 分支简介 分支创建 分支切换 分支新建与合并 分支新建 分支合并 遇到冲突时的分支合并 分支简介 首先,Git保存数据的方式比较特殊,保存的是文件的快照,而不是文件的变化. 因此,在执行提交( commit )操作时,Git会保存一个提交对象( commit object).该提交对象包含一个指针指向暂存的内容快照,同时包含作者的姓名.邮箱.提交时输入的信息和指向它父对象的指

git(学习之三)基本操作

Git学习笔记 ##################################################### qq:1218761836 qq群:150181442 E-mail:[email protected] ##################################################### 目录 Git. 2 1.1 初次运行前的配置... 2 1.2 创建版本库... 3 0.3 git提交文件... 4 1.4 检查当前文件状态... 4 1.5