【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 "[email protected]"

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 [email protected]: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.即成功。

相关推荐
吐泡泡_10 分钟前
动静态库--
linux
努力学习的小廉20 分钟前
深入了解linux系统—— 操作系统的路径缓冲与链接机制
android·linux·服务器
蠢货爱好者23 分钟前
Linux中的nfs网络文件系统
linux·服务器·网络
ZZH1120KQ24 分钟前
Linux概述
linux·ubuntu·ssh
余辉zmh1 小时前
【Linux网络篇】:Socket网络套接字以及简单的UDP网络程序编写
linux·网络·udp
酥暮沐1 小时前
Linux的启动流程
linux·服务器·网络·启动流程
LitchiCheng3 小时前
RISC-V 开发板 MUSE Pi Pro USB 测试(3.0 U盘,2.0 UVC摄像头)
linux·运维·risc-v
咖啡进修指南3 小时前
LVS原理详解及LVS负载均衡工作模式
linux·负载均衡·lvs
西阳未落5 小时前
Linux(7)——进程(概念篇)
linux·运维·服务器
苒苒鸭5 小时前
nginx 基于IP和用户的访问
linux