【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.即成功。

相关推荐
Dovis(誓平步青云)4 分钟前
《内核视角下的 Linux 锁与普通生产消费模型:同步原语设计与性能优化思路》
linux·运维·性能优化
xu_yule15 分钟前
Linux_13(多线程)页表详解+轻量级进程+pthread_create
linux·运维·服务器
ALex_zry2 小时前
Git大型仓库推送失败问题解决方案:大文件传输优化指南
git
草莓熊Lotso2 小时前
Git 分支管理:从基础操作到协作流程(本地篇)
大数据·服务器·开发语言·c++·人工智能·git·sql
江湖有缘2 小时前
Linux系统之htop命令基本使用
linux·运维·服务器
CodeByV2 小时前
【Linux】基础 IO 深度解析:文件、描述符与缓冲区
linux
w***Q3506 小时前
Git工作流自动化
运维·git·自动化
xu_yule8 小时前
Linux_12(进程信号)内核态和用户态+处理信号+不可重入函数+volatile
linux·运维·服务器
虾..8 小时前
Linux 环境变量&&进程优先级
linux·运维·服务器
i***t9199 小时前
Linux下MySQL的简单使用
linux·mysql·adb