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. Android SwipeRefreshLayout 下拉刷新——Hi_博客 Android App 开发笔记

    以前写下拉刷新 感觉好费劲,要判断ListView是否滚到顶部,还要加载头布局,还要控制 头布局的状态,等等一大堆.感觉麻烦死了.今天学习了SwipeRefreshLayout 的用法,来分享一下,有 ...

  2. Js 原型和原型链

    Js中通过原型和原型链实现了继承 Js对象属性的访问,首先会查找自身是否拥有这个属性 如果查到,则返回属性值,如果找不到,就会遍历原型链,一层一层的查找,如果找到就会返回属性值 直到遍历完Object ...

  3. 简单有效的kmp算法

    以前看过kmp算法,当时接触后总感觉好深奥啊,抱着数据结构的数啃了一中午,最终才大致看懂,后来提起kmp也只剩下“奥,它是做模式匹配的”这点干货.最近有空,翻出来算法导论看看,原来就是这么简单(先不说 ...

  4. javascript匹配各种括号书写是否正确

    今天在codewars上做了一道题,如下 看上去就是验证三种括号各种嵌套是否正确书写,本来一头雾水,一种括号很容易判断, 但是三种怎么判断! 本人只是个前端菜鸟,,不会什么高深的正则之类的. 于是,在 ...

  5. 【原创分享·微信支付】 C# MVC 微信支付教程系列之公众号支付

    微信支付教程系列之公众号支付         今天,我们接着讲微信支付的系列教程,前面,我们讲了这个微信红包和扫码支付.现在,我们讲讲这个公众号支付.公众号支付的应用环境常见的用户通过公众号,然后再通 ...

  6. [原] 利用 OVS 建立 VxLAN 虚拟网络实验

    OVS 配置 VxLAN HOST A ------------------------------------------ | zh-veth0(10.1.1.1) VM A | | ---|--- ...

  7. 编写高质量代码:改善Java程序的151个建议(第6章:枚举和注解___建议88~92)

    建议88:用枚举实现工厂方法模式更简洁 工厂方法模式(Factory Method Pattern)是" 创建对象的接口,让子类决定实例化哪一个类,并使一个类的实例化延迟到其它子类" ...

  8. Effective前端2:优化html标签

    div { float: left; } .keyboard > div + div { margin-left: 8px; } --> div{display:table-cell;ve ...

  9. java 设计模式

    目录: 设计模式六大原则(1):单一职责原则 设计模式六大原则(2):里氏替换原则 设计模式六大原则(3):依赖倒置原则 设计模式六大原则(4):接口隔离原则 设计模式六大原则(5):迪米特法则 设计 ...

  10. 【夯实PHP基础】UML序列图总结

    原文地址 序列图主要用于展示对象之间交互的顺序. 序列图将交互关系表示为一个二维图.纵向是时间轴,时间沿竖线向下延伸.横向轴代表了在协作中各独立对象的类元角色.类元角色用生命线表示.当对象存在时,角色 ...