1.安装

Liunx直接打开shell界面,输入:sudo apt-get install git-core ,按下回车之后输入密码即可完成安装;

Windows系统在https://git-for-windows.github.io/网站上直接下载安装即可。

2.创建代码仓库

在这之前先配置你的身份信息,Linux系统直接打开shell界面,Windows找到git bash 并打开。输入如如下命令:

git config --global user.name "name"

git config --global user.email"name@email"

现在开始了!先进入到你的文件,如图

在此页面输入git init 完成。

3.提交本地代码

git add name.txt 即可添加单个文件

git add src 添加整个文件夹

git add . 添加所有文件

现在已经添加好了,只需要再提交即可,输入 git commit -m "First commit." 。-m后面加上提交的描述信息(没有会被认为不合法)。

4.忽略文件

有些文件你并不想提交(比如bin目录会自动生成的),可以在该项目中创建一个.gitignore的文件,然后编辑文件里面的内容,添加bin/保存即可。再次提交本地代码的时候,bin文件将不会被提交。

5.查看修改内容

在项目的根目录下输入 git status 即可查看修改情况。

但是如何才能看到修改内容呢?输入git diff 即可查看到修改内容。

如果你只想看某个文件的修改内容,输入 git diff name.txt 即可。

6.撤销未提交的修改

有时我们需要撤销未提交的修改,那么输入 git checkout name.txt 即可。不过这种办法是只适用于那些还未执行过add命令的文件,如果已经add过,我们就需要先对其取消添加,然后才可以撤回提交。取消添加使用命令 git reset HEAD name.txt

7.查看提交记录

有时你需要查看一下提交记录,输入 git log 即可。

当提交记录非常多的时候,你只关心其中的某一条,可以在命令中指定该记录的id,并加上-1参数表示我们只想看到一行记录。比如

git log 2e7c0547af28ccle9f303a4a1126fddbb704281b -1 

而想要查看这条提交记录到底修改了什么具体内容,可以在命令中加入-p参数,比如

git log 2e7c0547af28ccle9f303a4a1126fddbb704281b -1 -p  其中减号代表删除的部分,加号代表添加的部分。

8.分支的用法

分支是版本控制工具中比较高级且比较重要的一个概念,他主要的作用是在现有代码的基础上开辟一个分叉口,是的代码可以在主干线和分干线上同行进行开发,且相互之间不会影响。

分支的英文名是branch,可以使用 git branch -a 这个命令查看当前有哪些分支(master分支就是主干线)。使用git branch name1.0 创建一个分支。使用checkout命令进行切换,使当前代码切换到name1.0上(git checkout name1.0)。

当我们在name1.0上面修改代码修改完成之后,再次切换到主干线(git checkout master),再输入 git merge name1.0 即可把在name1.0分支上修改并提交的内容合并到master分支上了。有时可能会出现代码冲突的情况,这时就需要你自己仔细解决这些冲突了。

最后,当我们不再需要name1.0这个分支的时候,可以将其删除。输入 git branch -D name1.0 即可。

9.与远程版本库协作

如果你一个人进行开发, 那么使用Git并不会有多大的优势,但是你若是团队合作开发,那么才能够将Git强大的功能发挥出来。

比如说现在有一个远程版本库的Git地址 https://github.com/Chensx1020/Sight.git,就可以使用如下的命令将代码下载到本地:

git clone https://github.com/Chensx1020/Sight.git

之后你在此代码基础上修改提交,最后借助push命令把本地修改的内容同步到远程版本库上(git push origin master),其中origin就是远程版本库的Git地址,master指同步到哪一个分支上。

如何又将远程版本库的修改信息同步到本地呢?使用fetch命令即可,输入

git fetch origin master 基本同push命令。

不过同步下来的代码并不会合并到任何分支上面去,而是会存放在一个origin/master分支上,使用git diff origin/master 查看到底修改了哪些内容吧。之后可以使用merge命令将origin/master分支上的内容修改合并到主分支上 git merge origin/master 

而pull命令则是将fetch和merge这两个命令放在一起执行。他可以从远程版本库上获取最新的代码并且合并到本地,用法如下:

git pull origin/master

10.将代码托管到GitHub上

GitHub是全球最大的代码托管网站,主要借助Git来进行版本控制的。任何开源软件都可以免费地将代码提交到GitHub上,以零成本的代价进行代码托管。GitHub的网站是:

https://github.com,快去注册一个账号吧。

注册之后我们可以点击右下角New repository按钮来创建一个版本库,输入里面的信息,接着点击Create repository 按钮,这个版本库就完成了。

现在我们需要将远程版本库克隆到本地,我们可以在该版本库主页的右下角找到,如图

复制里面的网址,转到第九步。

OK!不要太嫌弃。

Git时间(第一次写,这个怎么玩啊)的更多相关文章

  1. 第一次写博客,关于前端开发deMVC在js中的应用

    对前端MVC MVC分别是model.view.controller的缩写,模型.视图.控制器.这些更加偏向于后台,在以前MVC是只属于后台的.当然随着技术的进步,前端的大牛们将后台的一些东西应用于前 ...

  2. 第一次写博客Poj1044

    Date bugs Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 3005   Accepted: 889 Descript ...

  3. 第一次写python爬虫

    花了4天终于把写完了把国内的几个漏洞平台爬完了,第一次写py,之前一直都在说学习,然后这周任务是把国内的漏洞信息爬取一下.花了1天学PY,剩下的1天一个.期间学习到了很多.总结如下: ======== ...

  4. Java第一次写的流布局图形界面,留个纪念

    package jisuanqi; import java.awt.*; public class MyFrame extends Frame{ //继承Frame类 public MyFrame() ...

  5. HDU 2064 菜鸡第一次写博客

    果然集训就是学长学姐天天传授水铜的动态规划和搜索,今天讲DP由于困意加上面瘫学长"听不懂就是你不行"的呵呵传授,全程梦游.最后面对连入门都算不上的几道动态规划,我的内心一片宁静,甚 ...

  6. Qt侠:像写诗一样写代码,玩游戏一样的开心心情,还能领工资!

    [软]上海-Qt侠 2017/7/12 16:11:20我完全是兴趣主导,老板不给我钱,我也要写好代码!白天干,晚上干,周一周五干,周末继续干!编程已经深入我的基因,深入我的骨髓,深入我的灵魂!当我解 ...

  7. Git时间 —— 初始版本控制工具

    <第一行代码>读书手札 可能你早就听闻git,奈何看不懂命令吓退了. 今天逆流而上. (1.)安装Git 登录官网,下载最新版,一路下一步.就完成安装了. (2.)创建本地代码仓库 首先配 ...

  8. 第一次写的MySQLHelper

    一. 第一次写MysqlHelper,用来管理城市的数据库 二.MySQLHelper源代码 using MySql.Data.MySqlClient; using System; using Sys ...

  9. 今天我自己第一次写了一个Windows批处理bat脚本,一起学习一下吧。

    今天我自己第一次写了一个Windows批处理bat脚本,备注一下 事情原由:自己使用Java开发了一个加解密的工具.但是当把工具给别人使用的时候,别人还需要把代码编译打包, 然后还需要看一下代码里面的 ...

  10. git提交时写message的规范

    message规范 angular示例 commit message(提交说明) git commit -m "写一行提交说明" # 跳出文本编辑器,写多行 git commit ...

随机推荐

  1. 线性数据结构之栈——Stack

    Linear data structures linear structures can be thought of as having two ends, whose items are order ...

  2. SignalR快速入门 ~ 仿QQ即时聊天,消息推送,单聊,群聊,多群公聊(基础=》提升)

     SignalR快速入门 ~ 仿QQ即时聊天,消息推送,单聊,群聊,多群公聊(基础=>提升,5个Demo贯彻全篇,感兴趣的玩才是真的学) 官方demo:http://www.asp.net/si ...

  3. div实现自适应高度的textarea,实现angular双向绑定

    相信不少同学模拟过腾讯的QQ做一个聊天应用,至少我是其中一个. 过程中我遇到的一个问题就是QQ输入框,自适应高度,最高高度为3row. 如果你也像我一样打算使用textarea,那么很抱歉,你一开始就 ...

  4. 窥探Vue.js 2.0 - Virtual DOM到底是个什么鬼?

    引言 你可能听说在Vue.js 2.0已经发布,并且在其中新添加如了一些新功能.其中一个功能就是"Virtual DOM". Virtual DOM是什么 在之前,React和Em ...

  5. [Egret]优雅的写http

    首先,自从使用链式调用的写法后,就一发不可收拾的喜爱上了这种优雅的方式.不管是写架构还是写模块,我都会不自觉的使用这种最优雅的方式.链式写法既减少了代码量,又非常优雅的. 在使用 egret 的htt ...

  6. VS15 preview 5打开文件夹自动生成slnx.VC.db SQLite库疑惑?求解答

    用VS15 preview 5打开文件夹(详情查看博客http://www.cnblogs.com/zsy/p/5962242.html中配置),文件夹下多一个slnx.VC.db文件,如下图: 本文 ...

  7. [数据结构]——二叉树(Binary Tree)、二叉搜索树(Binary Search Tree)及其衍生算法

    二叉树(Binary Tree)是最简单的树形数据结构,然而却十分精妙.其衍生出各种算法,以致于占据了数据结构的半壁江山.STL中大名顶顶的关联容器--集合(set).映射(map)便是使用二叉树实现 ...

  8. jquery.each()

    $(selector).each(function(index,element)) index - 选择器的 index 位置 element - 当前的元素(也可使用 "this" ...

  9. 跟着老男孩教育学Python开发【第三篇】:Python函数

    set 无序,不重复,可嵌套. 函数 创建函数: 1.def关键字,创建函数 2.函数名 3.() 4.函数体 5.返回值 发邮件函数 def sendmail():     import smtpl ...

  10. centos 6 安装配置openvpn

    下载地址:http://swupdate.openvpn.org/community/releases/http://www.oberhumer.com/opensource/lzo/download ...