一、git工具和账户创建

1.1 安装

Git 是 Linus Torvalds 最近实现的源代码管理软件。"Git 是一个快速、可扩展的分布式版本控制系统,它具有极为丰富的命令集,对内部系统提供了高级操作和完全访问。"

Git 目前主要由寻找 CVS 或专有代码管理解决方案替代物的软件开发人员所使用。Git 与 CVS 有很多区别:

  • 分支更快、更容易。
  • 支持离线工作;本地提交可以稍后提交到服务器上。
  • Git 提交都是原子的,且是整个项目范围的,而不像 CVS 中一样是对每个文件的。
  • Git 中的每个工作树都包含一个具有完整项目历史的仓库。
  • 没有哪一个 Git 仓库会天生比其他仓库更重要。

安装当前版本的 Git,我们可以使用供应商在 Linux 发行版中提供的包,或者从最新的稳定快照开始手工进行编译。

Git工具所需要的环境如下:

  • zlib
  • libcurl
  • libcrypto(OpenSSL)
  • rsync

在ubuntu的命令行下输入命令:sudo apt-get install git 即可完成自动安装。

若是手动安装需要下载源码包,然后对源码包进行编译,假设已经下载了源码包,然后执行下面的操作:

  • tar -jxvf git-xxx-tar.bz2    或    tar -zxvf git-xxx-tar.gz
  • 切换到源码目录中执行make命令:
    • make prefix=/usr/local install
    • sudo make prefix=/usr/local install

1.2 使用

1.2.1 用户名和邮箱

用户名和邮箱地址相当于自己的身份标识,是本地Git客户端的一个变量,不会随着Git库而改变。

每次commit都会用用户名和邮箱纪录。

github的contributions跟自己的邮箱是有关联的。

1.2.2 查看自己得用户名和邮箱

git config user.name

git config user.email

1.2.3 修改自己得用户名和邮箱

git config --global user.name "xxx"

git config --global user.email "xxx"

1.2.4 查看系统config

git config --system –list

1.2.5查看当前用户(global)配置

git config --global  --list

1.2.6 查看当前仓库配置信息

git config --local  --list

1.2.7 列出所有tag

git tag

1.2.8 查看某些tag

git tag -l v1.*

1.2.8 创建tag

创建轻量级tag:

git tag v1.0

这样创建的tag没有附带其他信息,与之相应的是带信息的tag:

git tag -a v1.0-m 'first version'

-m后面带的就是注释信息,这样在日后查看的时候会很有用,这种是普通tag,还有一种有签名(需要有GPG私钥)的tag:

git tag -s v1.0-m 'first version'

除了可以为当前的进度添加tag,还可以为以前的commit添加tag:

  • 首先查看以前的commit:git log –oneline
  • 假如有这样一个commit:123456 updated readme,这样为他添加tag:git tag -a v1.1123456

1.2.9 删除tag

git tag -d v1.0

1.2.10 验证tag

如果有GPG私钥的话就可以验证tag:

git tag -v v1.0

1.2.11 共享tag

在执行git push的时候,tag是不会上传到服务器的,比如现在的github,创建tag后git push,在github网页上是看不到tag的,为了共享这些tag,必须执行下面得命令:

git push origin --tags

二、使用git 下载 uboot源码

2.1 下载

下面的命令将创建一个名为 u-boot 的 Git 仓库。这个目录包含了一个隐藏目录 .git/ 。

执行命令:git clone git://git.denx.de/u-boot.git u-boot

等待下载完毕。

2.2 查看仓库信息及release版本

切换到包含新下载的u-boot的目录中:cd u-boot

2.2.1 查看仓库信息

执行命令:git status

2.2.2 查看release版本

查看release版本即是查看打了标签的版本。

执行命令:git tag

2.2.3 切换到特定版本

执行命令:git

2.2.4 查看当前版本与其他版本的不同

执行命令:git diff 当前版本

2.3 从仓库中导出文件

我们需要将文件从 Git 仓库(隐藏目录中的那些文件)中导出到工作目录中才能开始自己的 hack 过程。下面的命令会在当前目录中写入没有隐藏的目录,其中包含了 u-boot 的源代码:

执行命令:git checkout -b v2018.07

如果希望覆盖本地修改,可以使用 -f 选项导出文件,这样就可以回到一个干净的状态:

执行命令:git checkout -f

切换完之后查看一下分支:git branch

现在在当前工作目录中,我们应该就可以看到熟悉的 u-boot 源代码目录结构了,然后我们可以对这些源代码任意进行修改。

2.4 更新本地git仓

切换到特定仓库时候,如v2018.07后,需要手动从服务器拉取分支代码:

git pull origin 分支名称

三、github代码托管

3.1 github上进行版本创建

首先得注册并登陆github,github官方地址:https://github.com

然后点击左下角的 New repository 按钮来创建一个版本库:

然后将版本库命名为 u-boot,然后选择添加一个 C 项目类型的.gitignore 文件,并使用 GPL2 来作为u-boot的开源协议

接着点击 Create repository 按钮,coolweather 这个版本库就创建完成了

四、进行本地版本管理

进入下载好得u-boot代码文件夹中。

删除当前目录下的 .git 和 .gitignore

将自己得远程代码库clone下来:

git clone https://github.com/xxxxxxxxx/u-boot.git

在这个里面会生成一个新的u-boot文件夹,将其中的.git 和 .gitignore文件拷贝到u-boot源码根目录。然后删掉源码根目录下的u-boot文件夹。

提交代码到远程库:git add .

查看代码是否已经加载:git status

提交代码:git commit -m "v2018.07"

代码压入仓中:git push origin master

也可可以执行强制上传:git push -u origin master -f,但是可能会丢失掉分支和修改的代码

最后一步需要输入github的用户名和密码。

注意:关于 git push 过程中卡住的问题,可以尝试以下方法:

  • 添加 sendpack.sideband 属性并置为 false
    • 全局的:git config --global sendpack.sideband false
    • 仓库的:git config --local sendpack.sideband false
  • 通过git config --local -l 查看仓库级配置,可以看到有 sendpack.sideband 这一项并且是置为false的:

  • 设置成功后再次push

上传成功后:

Github 官网:

代码管理工具:使用github和git工具管理自己的代码的更多相关文章

  1. 好代码是管出来的——使用Git来管理源代码

    软件开发过程中一个重要的产出就是代码,软件的编码过程一般是由一个团队共同完成,它是一个并行活动,为了保证代码在多人开发中能够顺利完成,我们需要使用代码版本控制工具来对代码进行统一存储,并追踪每一份代码 ...

  2. 第一次使用github、git工具,本地仓库、远程仓库使用

    一次使用git,记录下使用过程...可能还有很多东西可能还没理解,后期理解了再写吧 git是什么.,百度的回答: 一:Git是什么? Git是目前世界上最先进的分布式版本控制系统. 使用过程一直在百度 ...

  3. PyCharm 通过Github和Git上管理代码

    1.最近希望通过github来管理代码,记录下pycharm上的设置,以下是针对windows版本.mac版本略有却别 如图所示 file-settings-Version Control-GitHu ...

  4. 4.代码同时托管到github和git.oschina.net

    我的开源项目托管在Github,同时在Git@OSC也有备份,有两个地方,是不是很麻烦呢?非也非也,下面介绍一下我是怎么做的. 1.先在Github新建一个项目,点击Github主页右上角的加号 -& ...

  5. git工具使用的简单介绍

    百度百科 写道 Git是一款免费.开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目. Git的读音为/gɪt/. Git是一个开源的分布式版本控制系统,用以有效.高速的处理从很小到非常大 ...

  6. 如何用git将项目代码上传到github

    注册账户以及创建仓库 要想使用github第一步当然是注册github账号了.之后就可以创建仓库了(免费用户只能建公共仓库),Create a New Repository,填好名称后Create,之 ...

  7. [转]如何用git将项目代码上传到github

    注册账户以及创建仓库 要想使用github第一步当然是注册github账号了.之后就可以创建仓库了(免费用户只能建公共仓库),Create a New Repository,填好名称后Create,之 ...

  8. 将代码库从 SVN 迁移至 Git 并保留所有 commit 记录

    公司内部原本使用 SVN 进行版本控制,但随着 Github 的流行我个人的代码管理习惯逐渐转变.虽然公司项目并非开源,SVN 所具有的标准 trunk / branches / tags 结构完全够 ...

  9. 02: git分支管理

    目录:GIT其他篇 01: git & github 02: git分支管理 目录: 1.1 Git常用命令 1.2 主要分支(保护分支) 1.3 特性分支:feature (开发分支合并到d ...

随机推荐

  1. hdu 3746 Cyclic Nacklace(kmp最小循环节)

    Problem Description CC always becomes very depressed at the end of this month, he has checked his cr ...

  2. js中同一个onclick绑定了两个js方法出现的问题

    问题: js中如果同一个onclick绑定了两个js方法问题,即 <li onclick="f1(),f2()"></li> 两个方法f1,f2中都分别有一 ...

  3. strutrs contextMap

    contextMap(非常重要) 1.动作类的生命周期 明确:动作类是多例的,每次动作访问,动作类都会实例化.所以是线程安全的.与Struts1的区别是,struts1的动作类是单例的. 2.请求动作 ...

  4. 安装原版Win8.1并激活

    别问我为啥是win8.1,因为我不喜欢win10. 别问我为啥装系统,因为我新买了个硬盘. 别问我为啥写个教程,因为经历了很多坑. 第一步,用U启动做个U盘启动 http://www.uqdown.c ...

  5. php中函数里面使用函数外面的变量

    一定要在函数里面声明为全局变量!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!(不然会有问题,还是不报错的那种)

  6. CentOS 6.5 64位 安装Nginx, MySQL, PHP

    此篇文章参考了一些网站找的教程,自己遇到了很多坑,写一下自己的安装全过程. 服务器是腾讯云的.安装了centos 6.5系统. 一. 安装Nginx 1.首先安装GCC,make,C++编译器 yum ...

  7. u-boot(六)小结

    目录 u-boot(六)小结 概述 内存分布 内核交互参数 title: u-boot(六)小结 tags: linux date: 2018-09-27 23:23:05 --- u-boot(六) ...

  8. u-boot(二)makefile

    目录 u-boot(二)makefile 引入 目录结构(1.1.6) 配置文件 目标 配置具体的单板 编译阶段 过程 链接入口 配置链接地址 附录 附录A:mkconfig解析 附录B 链接脚本 t ...

  9. gcc生成含有C信息的汇编

    title: gcc生成含有C信息的汇编 tags: gcc date: 2018-10-24 23:40:19 --- https://www.cnblogs.com/fengkang1008/p/ ...

  10. log4j、log4j2和slf4j的基本使用

    一.什么是log4j.log4j2和slf4j Log4j是Apache的一个开源项目,通过配置来控制日志的输出.主要是控制日志的输出级别.输出位置和输出内容格式. Log4j2是在log4j框架的基 ...