【Linux】Git使用

一、Git简介

Git 是一个开源的分布式版本控制系统,用于敏捷高效地处理很小或非常大的项目。

Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。

Git 与常用的版本控制工具 CVS, Subversion 等不同,它采用了分布式版本库的方式,不必服务器端软件支持。

二、Git安装

首先输入 git命令,查看系统有没有安装Git,如果没有,根据提示【sudo apt-get install git】就可以直接完成Git的安装。

旧版本的Debian或Ubuntu Linux,可能要把命令改为【sudo apt-get install git-core】,如果是其他Linux版本,可以直接通过源码安装。先从Git官网下载源码,然后解压,依次输入:

bash 复制代码
./config
make
sudo make install

三、本地项目上传到Github

1、在本地创建一个版本库(即文件夹),该目录里面的所有文件都可以被Git管理起来,每个文件的修改、删除,Git都能跟踪,以便任何时刻都可以追踪历史,或者在将来可以"还原";

bash 复制代码
mkdir learngit

2、通过【git init 】命令将该目录变成Git可以管理的仓库(初始化一个Git仓库),此时当前目录下多了一个 .git 的目录,通过【ls -ah】命令可以看见该隐藏目录;

bash 复制代码
cd learngit
git init

3、把项目复制到这个文件夹里面,再通过【git add】把项目添加到仓库;

bash 复制代码
git add 文件名

4、再通过【git commit -m "注释内容"】把项目提交到本地仓库,如果出现Author identity unknown错误,按照提示输入命令即可;

5、在用户主目录下,查看有没有.ssh目录,如果有,再看下该目录下有没有id_rsa和id_rsa.pub这两个文件,如果都有,可直接跳到下一步。如果没有,打开Shell(Windows下打开Git Bash),创建SSH Key,一直回车,使用默认值即可;

bash 复制代码
$ ssh-keygen -t rsa -C "youremail@example.com"

6、登录GitHub,打开"Account " -> "settings" -> "SSH Keys" -> "Add SSH Key",填写任意Title,在Key文本框里粘贴id_rsa.pub文件的内容;

7、在Github上设置好SSH密钥后,新建一个远程仓库"Create a new repo",填写Repository name,其他保持默认设置,点击"Create repository"按钮;

8、根据GitHub的提示,在本地的learngit仓库下运行命令【git remote add origin git@github.com:xxx/xxx.git】将本地仓库和远程仓库进行关联,此处注意替换成自己的GitHub账户名及远程仓库名;

9、最后通过【git push -u origin master】命令将本地仓库的项目推送到远程仓库(也就是Github)上。

以后,只要本地做了提交,就可以通过命令:

bash 复制代码
$ git push origin master

把本地master分支的最新修改推送至GitHub,这样你就拥有了真正的分布式版本库!

**注意:**如果出现如下错误,是因为直接在github上在线修改了代码,或者是直接向某个库中添加文件,但是没有对本地库同步,接着想push上传到远程库,就会失败。

解决方法:因为远程库与本地库不一致造成的,那么把远程库同步到本地库即可。

1、提前防止发生这个警告**:**如果之前没有在本地库中进行commit,那么直接通过pull拉取要上传的远程库即可;

bash 复制代码
git pull 远程库别名 master

2、之前已经commit了**:**需要通过 --rebase 取消掉本地库中刚刚的commit。

bash 复制代码
git pull --rebase 远程库别名 master

出现Successfully rebased and updated refs/heads/master.即成功。

相关推荐
寂柒1 小时前
信号量——基于环形队列的生产消费模型
linux·ubuntu
林姜泽樾5 小时前
Linux入门第十二章,创建用户、用户组、主组附加组等相关知识详解
linux·运维·服务器·centos
xiaokangzhe5 小时前
Linux系统安全
linux·运维·系统安全
feng一样的男子5 小时前
NFS 扩展属性 (xattr) 提示操作不支持解决方案
linux·go
Highcharts.js6 小时前
Highcharts React v4.2.1 正式发布:更自然的React开发体验,更清晰的数据处理
linux·运维·javascript·ubuntu·react.js·数据可视化·highcharts
c++之路7 小时前
Linux网络协议与编程基础:TCP/IP协议族全解析
linux·网络协议·tcp/ip
Charlie__ZS7 小时前
Ubuntu 22.04新建用户,并赋予管理权限
linux·os·ubuntn
keep intensify8 小时前
康复训练 5
linux·c++
OxyTheCrack8 小时前
【C++】详细拆解std::mutex的底层原理
linux·开发语言·c++·笔记
sa100279 小时前
淘宝商品详情 API 接口开发实战:item_detail 调用、参数与 Python 示例
linux·数据库·python