代码管理工具:使用github和git工具管理自己的代码
一、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工具管理自己的代码的更多相关文章
- 好代码是管出来的——使用Git来管理源代码
软件开发过程中一个重要的产出就是代码,软件的编码过程一般是由一个团队共同完成,它是一个并行活动,为了保证代码在多人开发中能够顺利完成,我们需要使用代码版本控制工具来对代码进行统一存储,并追踪每一份代码 ...
- 第一次使用github、git工具,本地仓库、远程仓库使用
一次使用git,记录下使用过程...可能还有很多东西可能还没理解,后期理解了再写吧 git是什么.,百度的回答: 一:Git是什么? Git是目前世界上最先进的分布式版本控制系统. 使用过程一直在百度 ...
- PyCharm 通过Github和Git上管理代码
1.最近希望通过github来管理代码,记录下pycharm上的设置,以下是针对windows版本.mac版本略有却别 如图所示 file-settings-Version Control-GitHu ...
- 4.代码同时托管到github和git.oschina.net
我的开源项目托管在Github,同时在Git@OSC也有备份,有两个地方,是不是很麻烦呢?非也非也,下面介绍一下我是怎么做的. 1.先在Github新建一个项目,点击Github主页右上角的加号 -& ...
- git工具使用的简单介绍
百度百科 写道 Git是一款免费.开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目. Git的读音为/gɪt/. Git是一个开源的分布式版本控制系统,用以有效.高速的处理从很小到非常大 ...
- 如何用git将项目代码上传到github
注册账户以及创建仓库 要想使用github第一步当然是注册github账号了.之后就可以创建仓库了(免费用户只能建公共仓库),Create a New Repository,填好名称后Create,之 ...
- [转]如何用git将项目代码上传到github
注册账户以及创建仓库 要想使用github第一步当然是注册github账号了.之后就可以创建仓库了(免费用户只能建公共仓库),Create a New Repository,填好名称后Create,之 ...
- 将代码库从 SVN 迁移至 Git 并保留所有 commit 记录
公司内部原本使用 SVN 进行版本控制,但随着 Github 的流行我个人的代码管理习惯逐渐转变.虽然公司项目并非开源,SVN 所具有的标准 trunk / branches / tags 结构完全够 ...
- 02: git分支管理
目录:GIT其他篇 01: git & github 02: git分支管理 目录: 1.1 Git常用命令 1.2 主要分支(保护分支) 1.3 特性分支:feature (开发分支合并到d ...
随机推荐
- LVS搭建负载均衡(二)DR模型
应用场景:LVS配置负载均衡方式之一:dr 测试环境: 配置步骤: 1. 在主机lvs上安装ipvsadm ~]# yum install ipvsadm -y ~]# ipvsadm //启动:该命 ...
- request.getRequestDispatcher 页面跳转,样式丢失。
在页面中引用样式和其它资源的时候,尽量不要用相对路径,因为"当前路径"这个概念在J2EE中是不稳定的. 所以最好都是绝对路径,类似于: <% String cp = requ ...
- Learn to securely share files on the blockchain with IPFS!
https://medium.com/@mycoralhealth/learn-to-securely-share-files-on-the-blockchain-with-ipfs-219ee47d ...
- ONI无法启动: Uh oh! Unable to launch Neovim...
问题描述 在终端中是可以打开nvim的,ONI无法正确找到位置 解决方法 修改配置文件,指定nvim的路径 终端中输入which nvim定位所在位置,这里返回的结果是/usr/local/bin/n ...
- snmpwalk
什么是snmpwalk?snmpwalk是一个SNMP小程序,它使用SNMP的GETNEXT请求查询指定OID(SNMP协议中的对象标识)入口的所有OID树信息,并显示给用户. snmpwalk的作用 ...
- JMeter请求执行次数 你想执行几次就执行几次
今天介绍下JMeter如何控制请求执行次数 主要有两种方式: 方式一:通过循环控制器控制每个请求的执行次数 例如:脚本执行规律是这样的,login-->customerPage-->sea ...
- redis的操作
redis相当于是一个在内存中创建的大字典 redis的value有5大数据类型: redis的value有5大数据类型: 字符串 import redis conn = redis.Redis(ho ...
- 第五节,Neural Networks and Deep Learning 一书小节(中)
在这一节,我们对上一个程序(Network1.py)进行了优化 3.改进神经网络的学习方法 (1)交叉熵代价函数的引入 Network1程序采用了S型神经元,S型神经元存在一个问题,当输出层神经元的输 ...
- Gym 101915
Gym - 101915A Printing Books 题意:有一本书,从第X页开始,一共用了n位数字,求此书一共多少页.99就是两位数字,100就是三位数字. 思路:直接模拟即可,我用了一个hi ...
- CodeChef - BLACKCOM 可行性dp转最优化树dp
https://www.codechef.com/problems/BLACKCOM 题意:一颗5000个黑白结点的树,10W个查询寻找是否存在大小s并且有t和黑节点的子图 一开始就觉得应当是一个树d ...