工作以后最先接触到的新东西可能就包括版本控制工具了,对Git的感觉是又敬又畏,敬是因为最初的时候都是跟着同事照猫画虎地通过开发软件图形化操作,大家都不太懂,也不知道这东西有多深奥;畏就是因为有过几次惨痛的代码被覆盖的经历。总之能够掌握Git的常用操作在工作中是非常有必要的,今天抽出时间把相关的基础知识整理一下。

一.Git简介

想来想去这部分估计想看的人能仔细瞅瞅,不想看的一眼都嫌多,那就这样吧

百度百科地址

http://baike.baidu.com/link?url=d7y8v6ipdY1kKXBOoV4NU3MyMZi62nekBGBPcnSN0-KneNSvtLznR7UT5JlAu0Qr81hfwTSdPBJQXV0QRrgiaq

二.安装Git

这块也尽量少废话,安装没什么坑

Linux下:

sudo apt-get install git-core

直接完成。

Windows下:

官方网址:https://git-for-windows.github.io/

或者别的地方下载安装包,傻瓜式安装。

三.创建代码仓库

很多情况下都是多人共同维护开发一个项目,提交代码自然要知道是谁提交的,所以首先要配置身份信息

git config --global user.name "your name"

  

git config --global user.email "your email"

同样的命令可以查询当前的用户信息。

创建代码仓库

先在命令行下进入到想要创建仓库的目录下,然后

git init

结束。

此时目录下会生成一个隐藏的.git文件夹,用来记录本地所有Git操作的,可以通过 ls-al命令来查看。

想要删除代码仓库就直接删除该文件夹即可。

四.提交本地代码

提交本地代码

首先添加想要提交的文件或文件夹

git add XXX

如果想提交该目录下所有文件,可以执行

git add .

然后执行提交操作

git commit -m "这里是注释"

commit 是提交操作,后面一定要有本次提交的注释信息。

五.辅助操作

忽略文件:

并不是项目文件中所有文件都要提交,如何把不需要提交的文件摘出来呢、

.gitignore文件就是用来做这个的。该文件中配置的文件都不会被提交,如

/app
/* 所有app文件夹 */
/app/build
/* app文件夹中的build文件夹 */
*.php
/* 所有.php文件 */

查看修改内容

Git另一个强大的功能就是能帮我们记住我们的修改记录。

在项目的根目录下输入:

git status

如果没有修改或者刚刚提交过,Git会提示没有课提交文件,如果修改过东西,则会显示我们修改的文件

查看修改具体内容:

git diff
/* 查看所有文件修改内容 */
git diff xxx
/* 查看xxx文件中修改的内容,其中减号代表删除的部分,加号代表添加的部分 */

撤销未提交的修改:

git checkout xxx

这样就能恢复未提交的文件到上次提交时的状态了。

但是如果执行过git add命令后想取消怎么办?

git reset xxx

可以取消添加。

查看提交记录

git log

可以查看到你的提交记录,此时你就会明白commit注释的意义了。

也可以进行详细的查看:

git log xxx -1 -p

查看xxx文件提交信息,-1表示只显示一条信息,-p表示显示修改的详细内容。

六.分支

分支就是项目可以分出一支来与主项目同事并行开发,最后根据需要还可以再合并到一起,现实工作中是一个很重要的功能。

查看当前有哪些分支

git branch

master是主干线

创建分支

git branch version1.0

创建了一个名为version1.0的分支

分支与分支,master互不影响,除非合并。

合并操作

git checkout master
git merge version1.0

这样将version1.0分支与主干线合并,如果不再需要保留分支,可以删除

删除分支

git branch -D version1.0

七.代码push到远程版本库

一般每天都需要将自己更新的代码push上去,这样可以让其他人查看或使用到最新的代码,也可以防止本地代码丢失造成的损失。

如何下载远程代码

git clone https://github.com/xxx/xxx.git

提交到远程

git push origin master

origin部分制定的是远程版本库的Git地址,master部分指定的是同步到哪个分支。

有push就有pull

git pull origin master

操作与push类似,作用是将远程代码同步到本地并与本地分支合并

git fetch origin master

fetch命令是pull的一部分,只有同步的功能,将代码存放在origin/master分支上,可以用diff查看修改内容,merge合并到分支。

八.小结

记住了上面这些简短的命令,git的日常使用基本就没什么问题了,一般提交步骤都是每天相同的,比如

git add xxx
git commit -m "xxxxx"
git push origin master
exit

注意提交后是否有报错,最常见的就是与线上版本冲突,需要先将远程代码pull下来,合并时有不同一点点merge,然后重新push。

Git还有很多内容可以学习使用,今天就先到这里,基础也是很重要的。

Git从入门到差不多会用的更多相关文章

  1. GIT 从入门到放弃大整理

    跟着廖雪峰学 GIT  http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000 GUI f ...

  2. 第三章 Git的入门 - 读书笔记

    Android驱动月考3 第三章 Git的入门 - 读书笔记 对于Github,这是全世界最大的开源平台,你可以把你做的项目在这里开源,把你发现的一些新技术在这里开源,向全世界的开发者们分享,大家都彼 ...

  3. git简单入门

    git简单入门 标签(空格分隔): git git是作为程序员必备的技能.在这里就不去介绍版本控制和git产生的历史了. 首先看看常用的git命令: git init git add git comm ...

  4. Android系统移植与驱动开发--第三章 Git使用入门及在学习中有感

    第三章 Git使用入门 使用Git的目的是减少各种版本的Linux的压缩大小,提供源代码在Linux上进行编译. 在这一个章节中,其实就是关键步骤的操作,虽然Git与我们学习的android没有很大的 ...

  5. 让 Python 带你进入开源的世界——Git 从入门到与他人协作开发

    让 Python 带你进入开源的世界--Git 从入门到与他人协作开发 我认为开源社区中有很多优秀的资源,并且可以帮助进阶中的程序员提高编程能力和水平.所以,我发起了<HelloGitHub&g ...

  6. Git快速入门进阶篇

    本文接着Git快速入门篇,继续探讨Git在管理项目中的一些应用. 远程仓库的使用 查看远程仓库 查看你已经配置的远程仓库服务器,可以运行 git remote 命令.指定选项 -v,会显示需要读写远程 ...

  7. git快速入门 push/clone/reset/merge/切换分支全都有

    本文介绍git快速入门,从安装/创建init / 发布push/版本回退reset / branch分支切换/合并分支merge 这些基本的操作都有涉及,方便新人快速入手,有需要的朋友mark一下.首 ...

  8. Git 快速入门--Git 基础

    Git 快速入门 Git 基础 那么,简单地说,Git 究竟是怎样的一个系统呢? 请注意接下来的内容非常重要,若你理解了 Git 的思想和基本工作原理,用起来就会知其所以然,游刃有余. 在开始学习 G ...

  9. Git原理入门简析

    为了获得更好的阅读体验,建议访问原地址:传送门 前言: 之前听过公司大佬分享过 Git 原理之后就想来自己总结一下,最近一忙起来就拖得久了,本来想塞更多的干货,但是不喜欢拖太久,所以先出一版足够入门的 ...

随机推荐

  1. Java并发编程的艺术· 笔记(1)

    目录 1.volatile的原理 2.Synchonized 3.无锁-偏向锁-轻量级锁-重量级锁 4.Java实现原子操作 1.volatile的原理 如何保持可见性: 1)将当前处理器缓存行的数据 ...

  2. 利用scrapy-client 发布爬虫到远程服务端

    远程服务端Scrapyd先要开启 远程服务器必须装有scapyd,并开启. 这里远程服务开启的端口和ip: 192.166.12.80:6800 客户端配置和上传 先修爬虫项目文件scrapy.cfg ...

  3. 思科模拟器PacketTracer7--利用一台交换机将两台pc划分到不同vlan下

    实验2—3 实验内容:将同一交换机下的两台pc划分到不同vlan中 实验工具:思科模拟器PacketTracer7 使用设备:一台交换机,两台PC 实验步骤: 一.配置网络拓扑图 注:1.连线可选择闪 ...

  4. WebAPI调用笔记

    前言 即时通信项目中初次调用OA接口遇到了一些问题,因为本人从业后几乎一直做CS端项目,一个简单的WebAPI调用居然浪费了不少时间,特此记录. 接口描述 首先说明一下,基于Http协议的Get.Po ...

  5. background-size cover和contain的用法详解

    我们还可以通过background-size来控制背景图片的尺寸. background-size有几个属性值,常用的是cover和contain.那么background-size:cover和co ...

  6. Jenkins结合shell脚本实现(gitLab/gitHub)前端项目自动打包部署服务器

    原始发布部署: 石器时代的我们,先是本地打包好项目,在去服务器上把原来的文件删了,然后回到本地copy到服务器: 这操看起来简单,实际部署的人就知道多烦了,假如来几个项目都要重新发布:那就爽了: 今天 ...

  7. composer的安装方法 以及 ThinkPHP5安装

    1.下载installer的文件,使用浏览器开启链接:getcomposer.org/installer,下载如下文件到 E:\xs2016\composer, 将installer重命名为compo ...

  8. PHP设置凌晨时间戳

    这种需求应是很常见的,但一直没有时间整理. 一天可以领取2次奖励,今天领完了那就等明天再来. 这里面涉及到一个很重要的一点就是凌晨12点的时间戳,以前一直在前端去做判断.最近发现在后端用PHP获取凌晨 ...

  9. PDF 补丁丁 0.6.0.3413 版发布(修复提取图片问题,增加自动检查软件更新功能)

    新的测试版修复了提取图片旋转方向错误.遇到格式错误的图片后无法继续提取的问题. 另外增加了自动检查软件版本更新的功能(该功能不上传关于用户的任何个人信息,仅向本博客请求静态的版本信息文件,可在“帮助- ...

  10. python小总结3(异常、单例设计模式)

    一.异常 AttributeError:试图访问一个对象没有的成员[属性和方法] ValueError:值错误,传入了一个不期望的值 ImportError:无法导入模块或者包:基本上路径问题 Ind ...