ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

源代码管理工具-Github

2021-05-26 09:34:26  阅读:164  来源: 互联网

标签:文件 git 仓库 管理工具 github add Github 源代码


一、实验目的

个人编程:每个开发人员电脑上有自己的代码。硬盘坏了,所有的数据和资料不能找回或是很难复原。安全意识强一些的公司会要求开发人员将代码隔一段时间放到一个集中的计算机上,以日期为文件夹进行备份,但这也会有问题如:如果备份不及时代码仍然会有部分丢失;过多的备份文件夹大部分内容是重复的会造成磁盘占用;无法做到多个人开发一个项目;无法对比两个版本的差异;代码改坏了,想回退也麻烦。

正规开发团队:使用源代码管理(SourceControl)工具,源代码管理工具主要作用:代码版本管理、多用户并发修改管理。常用工具:VSS(Visual SourceSafe,简称SourceSafe)、TFS(Team Foundation Server)、CVS、SVN等。前两者都是微软的产品,也是.net开发最主流的两种源代码管理工具,VSS适合于几个人的小团队,VSS只能进行源代码管理;TFS适合大团队,不仅包含源代码管理,还支持Bug管理、文档管理、持续构建等。

由此可见,掌握源代码管理工具对软件开发有重要作用,本文档目的就是对几个常用的源代码开发工具进行优缺点分析,帮助大家选择适合自己的开发工具。

二、实验环境

1.单人开发只需要一个本地库

2.多人开发时需要一个共享版本库

3. 使用环境无论是单人开发还是多人开发,客户端都可以使用命令行或者图形界面使用git

三、如何使用

3-1 登录github

github的官方网址:https://github.com ,如果没有账号,可以注册一个。
点击Sign in进入登录界面,输入账号和密码登入github。

 

 

 

3-2 创建repository(仓库)

点击右上角的头像旁边的小三角,展开后可以看到Your profile,点击进入后就能看到repository

切换到repository选项卡,可以看到很醒目的new按钮。点击,就可以开始创建自己的粮仓。

 

下面是创建仓库信息,只有名字是必填项,现在我创建了一个仓库叫:FIRST

 

创建成功的图片,如下:

可以看到自己的仓库地址,如此,我的远程免费的仓库就创建了。它还介绍了github仓库的常用指令。这个指令需要在本地安装git客户端。

git init //把这个目录变成Git可以管理的仓库
git add README.md //文件添加到仓库
git add . //不但可以跟单一文件,还可以跟通配符,更可以跟目录。一个点就把当前目录下所有未追踪的文件全部add了 
git commit -m "first commit" //把文件提交到仓库
git remote add origin git@github.com:wangjiax9/practice.git //关联远程仓库
git push -u origin master //把本地库的所有内容推送到远程库上

3-3安装GIT

[root@localhost ~]# yum -y install git

查看是否已安装成功
[root@localhost ~]# git

 

3-4配置GIT

首先在本地创建ssh key;

ssh-keygen -t rsa -C "your_email@youremail.com" 

后面的 your_email@youremail.com 改为你的邮箱,之后会要求确认路径和输入密码,我们这使用默认的一路回车就行。成功的话会在~/下生成.ssh文件夹,进去,打开id_rsa.pub,复制里面的key。

 

两次回车回到github,进入Account Settings,左边选择SSH Keys,Add SSH Key,title随便填,粘贴key。

如果是第一次的会提示是否continue,输入yes就会看到:You’ve successfully authenticated, but GitHub does not provide shell access 。这就表示已成功连上github。

接下来我们要做的就是把本地仓库传到github上去,在此之前还需要设置username和email,因为github每次commit都会记录他们。

git config --global user.name "your name"  

 git config --global user.email "your_email@youremail.com" 

为了验证是否成功,在Git bash下输入:

[plain] view plain copy

 ssh -T git@github.com 

在服务器添加完公钥后报错

sign_and_send_pubkey: signing failed: agent refused operation

这个时候我们只要执行下

eval "$(ssh-agent -s)"

ssh-add

就可以了

进入要上传的仓库,右键git bash,添加远程地址:

[plain] view plain copy

 git remote add origin git@github.com:yourName/yourRepo.git  

后面的yourName和yourRepo表示你再github的用户名和刚才新建的仓库,加完之后进入.git,打开config,这里会多出一个remote “origin”内容,这就是刚才添加的远程地址,也可以直接修改config来配置远程地址。

3-5提交与上传

接下来在本地仓库里添加一些文件,比如README,

[plain] view plain copy

git add README  

git commit -m "first commit"  

上传到github:

[plain] view plain copy

 git push origin master  

git push命令会将本地仓库推送到远程服务器。

git pull命令则相反。

修改完代码后,使用git status可以查看文件的差别,使用git add 添加要commit的文件,也可以用git add -i来智能添加文件。之后git commit提交本次修改,git push上传到github。

3-6gitgnore文件

.gitignore顾名思义就是告诉git需要忽略的文件,这是一个很重要并且很实用的文件。一般我们写完代码后会执行编译、调试等操作,这期间会产生很多中间文件和可执行文件,这些都不是代码文件,是不需要git来管理的。我们在git status的时候会看到很多这样的文件,如果用git add -A来添加的话会把他们都加进去,而手动一个个添加的话也太麻烦了。这时我们就需要.gitignore了。

[plain] view plain copy

bin  

*.suo  

obj  

bin和obj是编译目录,里面都不是源代码,忽略;suo文件是vs2010的配置文件,不需要。这样你在git status的时候就只会看到源代码文件了,就可以放心的git add -A了。

3-7tag

我们可以创建一个tag来指向软件开发中的一个关键时期,比如版本号更新的时候可以建一个“v2.0”、“v3.1”之类的标签,这样在以后回顾的时候会比较方便。tag的使用很简单,主要操作有:查看tag、创建tag、验证tag以及共享tag。

四、git的工作流程

4-1在工作目录中添加、修改文件;

4-2将需要进行版本管理的文件放入暂存区域;

4-3将暂存区域的文件提交到git仓库。

因此,git管理的文件有三种状态:已修改(modified),已暂存(staged),已提交(committed)

五、git的优势与劣势

5-1Git的优势:

(1)它有分布式的版本管理,对比集中式的版本管理系统来说不会出现中心服务器死机影响工作的情况,而可以先存储在本地,等服务器修改好还可以接着进行工作

(2)它是开源的,它强调个体,并且对于公共服务器压力不会太大,大小项目均可管理,拥有良好的分支机制,速度快、灵活,分支之间可以任意切换

(3)冲突解决,多人开发很容易就会出现冲突,可以先pull远程到本地,然后在本地合并一下分支,解决好冲突,在push到远程即可。

(4)离线工作,如果git服务器出现问题,也可以在本地进行切换分支的操作,等联网后再提交、合并等操作。

5-2Git的劣势:

(1)学习成本较高

(2)没有严格权限控制,会导致成员易犯错。

(3)兼容性不好,可能在上个版本的项目内容放到另一个git版本会出错

六、总结

通过这次实验我学会了如何使用GitHub这种源代码管理工具,了解了团队合作的便捷方式。

标签:文件,git,仓库,管理工具,github,add,Github,源代码
来源: https://www.cnblogs.com/wmz-1959124/p/14811922.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有