热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

用Git做版本控制-并上传至Github

nsitionalENhttp:www.w3.orgTRxhtml1DTDxhtml1-transitional.dtd

安装Git
源码安装:
Git的工作需要调用curl,zlib,openssl,expat,libiconv等库的代码,首先安装依赖环境:
# yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel

之后在git官网下载最新的版本源代码:
http://git-scm.com/download
然后编译并安装:

# tar -zxvf git-1.8.4.2.tar.gz
# cd git-1.8.4.2
# make prefix=/usr/local all
# make prefix=/usr/local install

初次运行git前的配置

用户信息:

第一个要配置你个人的用户名和电子邮件地址,每次提交时都会引用这两条信息
# git config --global user.name "Leon Hao"
# git config --global user.email haolulue@163.com

文本编辑器:
设置默认使用的文本编辑器。Git需要你输入一些额外信息的时候,会自动调用一个外部文本编辑器给你用。默认操作系统指定默认编辑器,一般可能会是vi或者vim,如果你有其他的偏好,比如Emacs的话,可以重新设置:
# git config --global core.editor emacs

差异分析工具:

还有一个比较常用的是,在解决合并冲突时使用哪种差异分析工具。比如要改用vimdiff的话:
# git config --global merge.tool vimdiff

查看配置信息:

要查看已有的配置信息,可以使用git config --list命令:
[root@SK-UAT-MySQL /]# git config --list
user.name=Leon Hao
user.email=haolulue@163.com

设置第一个仓库:
进入Rails的程序根目录下,也可以自己手动创建一个目录,然后进入创建的目录中
初始化一个空的仓库
# git init

Git默认会跟踪所有的文件,但是有一些文件是我们不需要跟踪的,例如Rails(ruby)会创建一些日志文件记录应用程序的动作,这些文件经常变化,我们不需要版本控制系统跟踪这些文件,git有忽略文件的机制:在应用程序的根目录创建一个名为.gitignore的文件,然后写入一些规则告诉git忽略哪些文件即可:

Rails命令默认创建的.gitignore文件
# See http://help.github.com/ignore-files/ for more about ignoring files.
#
# If you find yourself ignoring temporary files generated by your text editor
# or operating system, you probably want to add a global ignore instead:
#  git config --global core.excludesfile '~/.gitignore_global'
# Ignore bundler config.
/.bundle
# Ignore the default SQLite database.
/db/*.sqlite3
/db/*.sqlite3-journal
# Ignore all logfiles and tempfiles.
/log/*.log
/tmp

我们再加入一些规则,修改这个文件即可:(为了筛选出配合ruby使用,自己可以根据自己需要修改)
# See http://help.github.com/ignore-files/ for more about ignoring files.
#
# If you find yourself ignoring temporary files generated by your text editor
# or operating system, you probably want to add a global ignore instead:
#  git config --global core.excludesfile '~/.gitignore_global'
# Ignore bundler config.
/.bundle
# Ignore the default SQLite database.
/db/*.sqlite3
/db/*.sqlite3-journal
# Ignore all logfiles and tempfiles.
/log/*.log
/tmp
# Ignore other unneeded files.
doc/
*.swp
*~
.project
.DS_Store
.idea

添加文件并提交:
把rails项目中的文件添加到git中,然后提交结果,git会按照.gitignore中的规则忽略文件
# git add .

查看状态:
通过这个命令你可以看到你提交那些文件,那些文件发生了改变
# git status

结果如下:
# 位于分支 master
# 要提交的变更:
# (使用 "git reset HEAD ..." 撤出暂存区)
#
# 修改: README.md
#
添加注释:
添加commit,记录git你改变了哪些改动:
# git commit -m "add README.MD"

结果:
[master 9e22467] add README.MD
1 file changed, 1 insertion(+), 1 deletion(-)
查看提交历史信息:
# git log

结果:
commit 9e22467c28fffff0c81e088d7787672489a87a3d
Author: Leon Hao
Date: Wed Oct 30 17:38:24 2013 +0800
add README.MD
commit 7179995695f7f8852dd3d4e2b6b3ef63878d6cfb
Author: Leon Hao
Date: Wed Oct 30 15:30:45 2013 +0800
add README file
commit 29001e46fdcee1838215416f558d4a5110a6834e
Author: Leon Hao
Date: Wed Oct 30 15:25:26 2013 +0800
doccenter commit
撤销这次改动:
可以看到一个文件被删除了,但是这个改动只发生在工作区,还没有提交。这样我们就可以用checkout命令切换到前一个提交记录来撤销这次改动(其中-f意思是复制当前的改动)
# git checkout -f

分支,编辑,提交,合并
分支:
Git中的分支功能很强大,分支是对仓库的复制,在分支中所做的改动不会影响父级文件,大多数情况下,父级仓库是master分支,可以使用checkout命令,并指定-b创建一个新分支。
# git checkout -b testfz

查看分支:
# git branch

编辑:
# git mv README.rdoc README.md

提交:
查看状态
# git status

添加:
# git add .

注释:
# git commit -a -m "add"

-a:将现有的文件的所有改动(包括使用git mv创建的文件,对git来说并不是一个新的文件)添加进来
合并:
# git checkout master

结果:
切换到分支 'master'
# git merge testfz

结果:
更新 9e22467..3d64e79
Fast-forward
README.md | 1 -
1 file changed, 1 deletion(-)
清理分支:
# git branch -d testfz

GitHub
已经将项目代码纳入git版本控制系统,现在将其推送到github了,github是一个针对git仓库及分享社交平台,将代码拷贝存放一份到github有两个目的:其一是对代码的完整备份(包括完整的提交历史),其二方便以后的协作,这一步不是必须要做的,不过加入github可以给你提供机会参与到更广为认知的开源项目来
1、首先需要到github注册帐号
注册地址:https://github.com/
2、创建ssh keys
用于通过key的方式将git项目推送至github中
官方说明:
https://help.github.com/articles/generating-ssh-keys#platform-linux
# cd ~/.ssh/
# ssh-keygen -t rsa -C "haolulue@163.com"

将ssh key添加再自己的github中,连接为
https://github.com/settings/ssh
3、创建仓库的连接,设置如下:
https://github.com/new

#用Git做版本控制-并上传至Github

4、上传至github中
# git remote add origin git@github.com:haoxiaolu/doccenter
# git fetch
# git commit -a -m "add file"
# git add .
# git push

5、已经完成,可以直接再github中查看自己的项目

#

 

GitHub Linux下使用方法 2013-06/86417.htm

Windows下Eclipse搭建GitHub开发环境图文教程 2013-06/85372.htm

R语言 3.0.1 源码已经提交到 GitHub 2013-05/84425.htm

从GitHub将Maven项目导入Eclipse4.2 2013-04/83082.htm


推荐阅读
  • 在Ubuntu 20.04 Linux系统中部署Git的详细步骤与最佳实践
    在Ubuntu 20.04 Linux系统中部署Git时,首先确保您的操作系统版本正确,并已以具备sudo权限的用户身份登录。推荐使用APT软件包管理器进行安装,这是最简便且可靠的方法。此外,遵循最佳实践,如定期更新Git版本和配置全局设置,可以进一步提升使用体验和安全性。 ... [详细]
  • 基于Node.js的高性能实时消息推送系统通过集成Socket.IO和Express框架,实现了高效的高并发消息转发功能。该系统能够支持大量用户同时在线,并确保消息的实时性和可靠性,适用于需要即时通信的应用场景。 ... [详细]
  • 如何将PHP文件上传至服务器及正确配置服务器地址 ... [详细]
  • 优化后的标题:PHP分布式高并发秒杀系统设计与实现
    PHPSeckill是一个基于PHP、Lua和Redis构建的高效分布式秒杀系统。该项目利用php_apcu扩展优化性能,实现了高并发环境下的秒杀功能。系统设计充分考虑了分布式架构的可扩展性和稳定性,适用于大规模用户同时访问的场景。项目代码已开源,可在Gitee平台上获取。 ... [详细]
  • 通过在项目中引用 NuGet 包 `ExcelDataReader`,可以实现高效地读取和导入 Excel 文件中的数据。具体方法是在项目中执行 `Install-Package ExcelDataReader` 命令,然后通过定义一个 `LeadingIn` 方法并传入上传文件的路径来完成数据导入。该方法不仅简化了代码逻辑,还显著提升了数据处理的效率和可靠性。 ... [详细]
  • 在CentOS上部署和配置FreeSWITCH
    在CentOS系统上部署和配置FreeSWITCH的过程涉及多个步骤。本文详细介绍了从源代码安装FreeSWITCH的方法,包括必要的依赖项安装、编译和配置过程。此外,还提供了常见的配置选项和故障排除技巧,帮助用户顺利完成部署并确保系统的稳定运行。 ... [详细]
  • 在Linux环境下编译安装Heartbeat时,常遇到依赖库缺失的问题。为确保顺利安装,建议预先通过yum安装必要的开发库,如glib2-devel、libtool-ltdl-devel、net-snmp-devel、bzip2-devel和ncurses-devel等。这些库是编译过程中不可或缺的组件,能够有效避免编译错误,确保Heartbeat的稳定运行。 ... [详细]
  • 本文详细介绍了如何在Linux系统中搭建51单片机的开发与编程环境,重点讲解了使用Makefile进行项目管理的方法。首先,文章指导读者安装SDCC(Small Device C Compiler),这是一个专为小型设备设计的C语言编译器,适合用于51单片机的开发。随后,通过具体的实例演示了如何配置Makefile文件,以实现代码的自动化编译与链接过程,从而提高开发效率。此外,还提供了常见问题的解决方案及优化建议,帮助开发者快速上手并解决实际开发中可能遇到的技术难题。 ... [详细]
  • 本文介绍了在Windows 10系统下使用VirtualBox虚拟机环境部署CentOS 7.2,并在其上安装Docker的具体步骤。针对宝塔面板在Docker容器中磁盘空间限制为8GB的问题,提供了详细的解决方案和优化建议,确保用户能够高效利用有限的存储资源。 ... [详细]
  • 在无网络环境下于CentOS 7系统中离线部署Nginx服务器
    nginx背景俄罗斯程序员IgorSysoev创建,于2004年NGINX首次发布,来解决C10K问题(10000并发客户端连接到单个服务器,导致服务器连接数过多崩溃的问题),是一 ... [详细]
  • 分布式开源任务调度框架 TBSchedule 深度解析与应用实践
    本文深入解析了分布式开源任务调度框架 TBSchedule 的核心原理与应用场景,并通过实际案例详细介绍了其部署与使用方法。首先,从源码下载开始,详细阐述了 TBSchedule 的安装步骤和配置要点。接着,探讨了该框架在大规模分布式环境中的性能优化策略,以及如何通过灵活的任务调度机制提升系统效率。最后,结合具体实例,展示了 TBSchedule 在实际项目中的应用效果,为开发者提供了宝贵的实践经验。 ... [详细]
  • 【并发编程】全面解析 Java 内存模型,一篇文章带你彻底掌握
    本文深入解析了 Java 内存模型(JMM),从基础概念到高级特性进行全面讲解,帮助读者彻底掌握 JMM 的核心原理和应用技巧。通过详细分析内存可见性、原子性和有序性等问题,结合实际代码示例,使开发者能够更好地理解和优化多线程并发程序。 ... [详细]
  • 深入解析JWT的实现与应用
    本文深入探讨了JSON Web Token (JWT) 的实现机制及其应用场景。JWT 是一种基于 RFC 7519 标准的开放性认证协议,用于在各方之间安全地传输信息。文章详细分析了 JWT 的结构、生成和验证过程,并讨论了其在现代 Web 应用中的实际应用案例,为开发者提供了全面的理解和实践指导。 ... [详细]
  • 在生产环境中进行高效部署与优化 ... [详细]
  • 手机上编写和运行PHP代码的最佳软件推荐 ... [详细]
author-avatar
平凡淘你
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有