Git时间(第一次写,这个怎么玩啊)
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时间(第一次写,这个怎么玩啊)的更多相关文章
- 第一次写博客,关于前端开发deMVC在js中的应用
对前端MVC MVC分别是model.view.controller的缩写,模型.视图.控制器.这些更加偏向于后台,在以前MVC是只属于后台的.当然随着技术的进步,前端的大牛们将后台的一些东西应用于前 ...
- 第一次写博客Poj1044
Date bugs Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 3005 Accepted: 889 Descript ...
- 第一次写python爬虫
花了4天终于把写完了把国内的几个漏洞平台爬完了,第一次写py,之前一直都在说学习,然后这周任务是把国内的漏洞信息爬取一下.花了1天学PY,剩下的1天一个.期间学习到了很多.总结如下: ======== ...
- Java第一次写的流布局图形界面,留个纪念
package jisuanqi; import java.awt.*; public class MyFrame extends Frame{ //继承Frame类 public MyFrame() ...
- HDU 2064 菜鸡第一次写博客
果然集训就是学长学姐天天传授水铜的动态规划和搜索,今天讲DP由于困意加上面瘫学长"听不懂就是你不行"的呵呵传授,全程梦游.最后面对连入门都算不上的几道动态规划,我的内心一片宁静,甚 ...
- Qt侠:像写诗一样写代码,玩游戏一样的开心心情,还能领工资!
[软]上海-Qt侠 2017/7/12 16:11:20我完全是兴趣主导,老板不给我钱,我也要写好代码!白天干,晚上干,周一周五干,周末继续干!编程已经深入我的基因,深入我的骨髓,深入我的灵魂!当我解 ...
- Git时间 —— 初始版本控制工具
<第一行代码>读书手札 可能你早就听闻git,奈何看不懂命令吓退了. 今天逆流而上. (1.)安装Git 登录官网,下载最新版,一路下一步.就完成安装了. (2.)创建本地代码仓库 首先配 ...
- 第一次写的MySQLHelper
一. 第一次写MysqlHelper,用来管理城市的数据库 二.MySQLHelper源代码 using MySql.Data.MySqlClient; using System; using Sys ...
- 今天我自己第一次写了一个Windows批处理bat脚本,一起学习一下吧。
今天我自己第一次写了一个Windows批处理bat脚本,备注一下 事情原由:自己使用Java开发了一个加解密的工具.但是当把工具给别人使用的时候,别人还需要把代码编译打包, 然后还需要看一下代码里面的 ...
- git提交时写message的规范
message规范 angular示例 commit message(提交说明) git commit -m "写一行提交说明" # 跳出文本编辑器,写多行 git commit ...
随机推荐
- iOS可视化动态绘制连通图
上篇博客<iOS可视化动态绘制八种排序过程>可视化了一下一些排序的过程,本篇博客就来聊聊图的东西.在之前的博客中详细的讲过图的相关内容,比如<图的物理存储结构与深搜.广搜>.当 ...
- 使用redis构建可靠分布式锁
关于分布式锁的概念,具体实现方式,直接参阅下面两个帖子,这里就不多介绍了. 分布式锁的多种实现方式 分布式锁总结 对于分布式锁的几种实现方式的优劣,这里再列举下 1. 数据库实现方式 优点:易理解 缺 ...
- LeetCode-3LongestSubstringWithoutRepeatingCharacters(C#)
# 题目 3. Longest Substring Without Repeating Characters Given a string, find the length of the longes ...
- 关于 CSS 反射倒影的研究思考
原文地址:https://css-tricks.com/state-css-reflections 译者:nzbin 友情提示:由于演示 demo 的兼容性,推荐火狐浏览.该文章篇幅较长,内容庞杂,有 ...
- 香蕉云APP,2016下半年开发日记
2016-6-17 数据库设计不应该过多依赖范式,适度的冗余可以加快搜索速度,在服务器的配置还可以的情况下,可以采用冗余来解决查找慢的问题.还一个是要选择好数据库引擎,例如 InnoDB 和 myi ...
- springMVC初探--环境搭建和第一个HelloWorld简单项目
注:此篇为学习springMVC时,做的笔记整理. MVC框架要做哪些事情? a,将url映射到java类,或者java类的方法上 b,封装用户提交的数据 c,处理请求->调用相关的业务处理—& ...
- 搭建属于自己的VIP积分系统(1)
很久没写博客了,如果有写得不好的地方,还请多多见谅. 架构设计 需求分析 这篇文章主要是介绍此VIP系统的基础架构.说实在的,我其实对 架构方面也不是很懂,我这套框架 还是拿别人的东西改过来的,并不是 ...
- 用Java代码实现拦截区域网数据包
起因: 吃饭的时间在想如果区域网内都是通过路由器上网,那如何实现拦截整个区域网的数据包,从而实现某种窥探欲. 思路: 正常是通过电脑网卡预先设置或分配的IP+网关对路由器进行通讯,比如访问百 ...
- Kotlin中变量不同于Java: var 对val(KAD 02)
原文标题:Variables in Kotlin, differences with Java. var vs val (KAD 02) 作者:Antonio Leiva 时间:Nov 28, 201 ...
- [转]ThinkPHP中实例化对象M()和D()的区别,select和find的区别
1.ThinkPHP中实例化对象M()和D()的区别 在实例化的过程中,经常使用D方法和M方法,这两个方法的区别在于M方法实例化模型无需用户为每个数据表定义模型类,如果D方法没有找到定义的模型类,则会 ...