Linux下Git和GitHub使用方法详解

一、linux上安装git软件

可以直接从发行版本的源里进行安装

# sudo apt-get install git   //ubuntu发行版下
# yum -y install git     //redhat、centos发行版下

二、使用https用户名密码认证连接github

1、在github上创建项目

首先需要从github上申请一个帐号,申请完成后在点击右上角的“+” 号创建一个新的repository项目,如下:

2、主机上初始化项目并同步到github服务器上

在linux主机上初始化该项目并同步到github服务器上。

[root@361way abc]# echo '# 361way' >> README.md
[root@361way abc]# git init
[root@361way abc]# git add README.md
[root@361way abc]# git commit -m "first commit"
[root@361way abc]# git remote add origin https://github.com/91it/361way.git
[root@361way abc]# git push -u origin master
Username for 'https://github.com': 91it
Password for 'https://91it@github.com':
Counting objects: 3, done.
Writing objects: 100% (3/3), 201 bytes | 0 bytes/s, done.
Total 3 (delta 0), reused 0 (delta 0)
To https://github.com/91it/361way.git
 * [new branch]      master -> master
分支 master 设置为跟踪来自 origin 的远程分支 master。
[root@361way abc]#

3、免用户名密码登录

如果想避免交互式输入用户密码,可以将git remote add包更换为:

git remote add origin  https://用户名:密码@github.com/用户名/repository项目名.git
配置完后再去git push
已经配置过的可以通过修改本地项目目录下的.git/config文件里的 [remote "origin"] 项下的 url 值,也可以通过git remote set-url origin 指令进行修改:

git remote set-url origin  https://用户名:密码@github.com/用户名/repository项目名.git
本地已经存在的项目,可以省去git init的过程,直接执行最后两步push到服务器上

git remote add origin  https://用户名:密码@github.com/用户名/repository项目名.git
git push -u origin master

三、使用ssh key认证连接github项目

某些云主机或vps主机,使用https认证进行连接时会出现403错误,如下:

[root@91it test]# git push -u origin master
error: The requested URL returned error: 403 Forbidden while accessing https://github.com/91it/test.git/info/refs
fatal: HTTP request failed

出现此类情况可以尝试使用ssh key管理。

1、ssh key认证配置

linux主机使用ssh-keygen指令生成key

[root@361way mnt]# ssh-keygen -t rsa -C "itybku@139.com"
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
8d:da:34:b3:11:f9:58:e7:5e:28:9c:e4:31:3d:df:38 itybku@139.com
The key's randomart image is:
+--[ RSA 2048]----+
|                 |
|         .   .   |
|        o . = oE |
|         B * = o+|
|        S o B . o|
|       + = . o   |
|      . o   .    |
|                 |
|                 |
+-----------------+
这里使用邮箱地址是我申请github账号的邮箱地址。将用户家目录下的.ssh/id_rsa.pub的内容复制。

2、github设置及linux主机验证

登录github.com,进入Account Settings,左边选择SSH Keys,Add SSH Key,title随便填,粘贴id_rsa.pub里的内容。配置完成后可以使用以下指令在linux主机上进行验证。

[root@361way test]# ssh -T git@github.com
Warning: Permanently added the RSA host key for IP address '192.30.252.130' to the list of known hosts.
Hi 91it! You've successfully authenticated, but GitHub does not provide shell access.
如果出现上面的提示表示增加key成功,如是出现Agent admitted failure to sign using the key 提示,则可以通过执行下面的指令增加key

ssh-add ~/.ssh/id_rsa

3、使用ssh协议进行同步

echo ' # 361way ' >> README.md
git init
git add README.md
git commit -m "first commit"
git remote add origin git@github.com:91it/361way.git
git push -u origin master
ssh协议和https协议url 可以通过修改本地项目目录下的.git/config文件或git remote set-url origin 指令进行修改。

四、查看git 项目源

可以通过查看项目下的.git/config文件查看,也可以通过git remote -v指令进行查看,示例如下:

#https认证
[root@361way test]# git remote -v
origin  https://github.com/91it/test.git (fetch)
origin  https://github.com/91it/test.git (push)
#ssh认证
[root@361way 361way]# git remote -v
origin  git@github.com:91it/361way.git (fetch)
origin  git@github.com:91it//361way.git (push)

五、其他错误

1、在执行$ git remote addorigin git@github.com:91it/test.git 错误提示:fatal: remote origin already exists.

解决方法:

$ git remote rm origin
然后在执行:$ git remote add origin git@github.com:defnngj/hello-world.git 就不会报错误了
2、在执行$ git push origin master错误提示:error:failed to push som refs to.......

解决方法:

$ git pull origin master // 先把远程服务器github上面的文件拉下来,再push 上去。

时间: 2024-08-22 00:09:15

Linux下Git和GitHub使用方法详解的相关文章

Linux下动态DNS服务配置方法详解

在网络管理中,对于DNS服务的管理是一项基础性的工作.随着用户规模的扩大,频繁地手工修改DNS的区域数据库文件不是一件轻松的工作.关于动态DNS(DDNS)的研究逐渐引起了人们的关注,不同的平台都推出了自己的解决方案.本文将详细介绍Linux环境下DDNS的解决方案,即由Internet Software Consortium(ISC)开发的BIND-DNS和DHCP(Dynamic Host Configure Protocol,动态主机配置协议)协同工作,进而共同实现DDNS的方法. 在Li

linux下coreseek 安装及使用方法详解

一般站点都需要搜索功能,如果是php+mysql站点,建议选择coreseek,如果是java站点建议使用lucene,coreseek 是一款很好的中文全文检索/搜索软件,支持高速建立索引.有很强的扩展性.支持分布式检索,支持不同的搜索模式('完全匹配','短语匹配','任一匹配'). 一.coreseek 安装 1:安装mmseg分词库 wget http://www.coreseek.cn/uploads/csft/4.0/coreseek-3.2.14-beta.tar.gz tar -

解决linux下大量TIME WAIT的方法详解_Linux

问题描述:在Linux系统中高并发的Squid服务器,TCP TIME_WAIT套接字数量经常达到两.三万,服务器很容易被拖死.解决方法:通过修改Linux内核参数,可以减少linux服务器的IME_WAIT套接字数量.vi /etc/sysctl.conf增加以下几行: 复制代码 代码如下: net.ipv4.tcp_fin_timeout = 30net.ipv4.tcp_keepalive_time = 1200net.ipv4.tcp_syncookies = 1net.ipv4.tcp

linux下vsftp安装和使用方法详解

一.安装vsftp 安装:yum install vsftpd 二.启动.停止.重启vsftp 启动vsftp: service vsftpd start 或指定路径(注意:/etc/init.d/路径可能不同):/etc/init.d/vsftpd start 重启 service vsftpd restart 停止vsftp: service vsftpd stop 三.创建ftp用户组和目录 1.创建FTP用户组ftp-users groupadd ftp-users 2.创建用户组目录f

Linux下配置Shadowsocks服务器的步骤详解

说明: Shadowsocks是一个轻量级的socks5代理软件, 而hadowsocks-libev是一个基于shadowsocks 协议的socks5代理软件, 相比原版,hadowsocks-libev程序体积小.高并发.资源占用更少.跨平台.完全兼容shadowsocks协议. hadowsocks-libev包括三个模块: ss-server:服务器端,部署在远程服务器,提供shadowsocks服务. ss-local:客户端,提供本地socks5协议代理. ss-redir:客户端

linux下的yum命令原理和详解_Linux

yum(全称为 Yellow dog Updater, Modified)是一个在Fedora和RedHat以及SUSE中的Shell前端软件包管理器.基於RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软体包,无须繁琐地一次次下载.安装.yum提供了查找.安装.删除某一个.一组甚至全部软件包的命令,而且命令简洁而又好记. yum的命令形式一般是如下:yum [options] [command] [package ...] 其中的[opt

Android编程之ICS式下拉菜单PopupWindow实现方法详解(附源码下载)_Android

本文实例讲述了Android编程之ICS式下拉菜单PopupWindow实现方法.分享给大家供大家参考,具体如下: 运行效果截图如下: 右边这个就是下拉菜单啦,看见有的地方叫他 ICS式下拉菜单,哎哟,不错哦! 下面先讲一下实现原理: 这种菜单实际上就是一个弹出式的菜单,于是我们想到android PopupWindow 类,给他设置一个view 在弹出来不就OK了吗. PopupWindow 的用法也很简单 主要方法: 步骤1.new 一个实例出来,我们使用这个构造方法即可, 复制代码 代码如

Linux下同步工具inotify+rsync使用详解

1. rsync 1.1 什么是rsync rsync是一个远程数据同步工具,可通过LAN/WAN快速同步多台主机间的文件.它使用所谓的"Rsync演算法"来使本地和远程两个主机之间的文件达到同步,这个算法只传送两个文件的不同部分,而不是每次都整份传送,因此速度相当快.所以通常可以作为备份工具来使用. 运行Rsync server的机器也叫backup server,一个Rsync server可同时备份多个client的数据:也可以多个Rsync server备份一个client的数

linux中sosreport工具安装使用方法详解

sosreport是一个类型于supportconfig 的工具,sosreport是python编写的一个工具,适用于centos(和redhat一样,包名为sos).ubuntu(其下包名为sosreport)等大多数版本的linux .sosreport在github上的托管页面为:https://github.com/sosreport/sos ,而且默认在很多系统的源里都已经集成有.如果使用的是正版redhat,在出现系统问题,寻求官方支持时,官方一般也会通过sosreport将收集的