ubuntu系统下部署使用git教程

在ubuntu系统下部署并使用git教程

1.下载并安装

bash 复制代码
sudo apt update
sudo apt install git

2.检验安装是否成功

bash 复制代码
git --version

若输出git版本号即为成功。

3.配置参数

bash 复制代码
git config --global user.name "你的名字"
git config --global user.email "你的邮箱"
git config --global credential.helper store #保存
git config --global --list #查看刚才保存内容

4.新建仓库

bash 复制代码
mkdir learn-git
cd learn-git
git init

若想在当前文件夹下的新文件夹创建git仓库

bash 复制代码
git init [想要创建的文件夹名字]

5.克隆项目

bash 复制代码
git clone [github项目地址]

6.工作区和文件状态

6.1 Git 的工作区

Git 的工作区(Working Directory)是你在本地计算机上实际的操作文件目录。它是你进行开发、修改代码的地方。工作区中的文件可以分为以下几种状态:

  • 未跟踪(Untracked):文件刚创建,Git 还没有记录它的历史。
  • 已修改(Modified):文件已经被修改,但还没有被暂存。
  • 已暂存(Staged):文件已经被添加到暂存区,准备提交到仓库。
  • 已提交(Committed):文件已经被提交到 Git 仓库,成为历史记录的一部分。

6.2 Git 的暂存区

暂存区(Staging Area,也称为索引区 Index)是 Git 的一个中间区域,用于暂存即将提交的文件。暂存区的作用是让你可以灵活选择哪些修改需要提交,哪些不需要。

  • 暂存文件 :使用 git add 命令将修改的文件添加到暂存区。
  • 取消暂存 :使用 git restore --staged <file> 命令将文件从暂存区移出。

6.3 Git 的仓库

仓库(Repository)是 Git 用来存储项目历史记录的地方。它包含了所有的提交记录、分支、标签等信息。仓库中的文件状态是"已提交"的。

6.4 文件状态的转换

文件在工作区、暂存区和仓库之间会经历以下状态转换:

  1. 未跟踪(Untracked)
    • 文件刚创建,Git 不知道它的存在。
    • 使用 git add <file> 将文件添加到暂存区,状态变为"已暂存"。
  2. 已修改(Modified)
    • 文件已经被修改,但还没有被暂存。
    • 使用 git add <file> 将文件添加到暂存区,状态变为"已暂存"。
  3. 已暂存(Staged)
    • 文件已经被添加到暂存区,准备提交。
    • 使用 git commit 将文件提交到仓库,状态变为"已提交"。
  4. 已提交(Committed)
    • 文件已经被提交到仓库,成为历史记录的一部分。
    • 如果文件在工作区中被修改,状态会回到"已修改"。

6.5 文件状态的命令

Git 提供了一些命令来查看和管理文件状态:

  • 查看文件状态

    bash 复制代码
    git status

    这个命令会显示当前工作区和暂存区的文件状态,包括哪些文件是"已修改"或"已暂存"。

  • 暂存文件

    bash 复制代码
    git add <file>

    将文件从"未跟踪"或"已修改"状态添加到暂存区。

  • 取消暂存

    bash 复制代码
    git restore --staged <file>

    将文件从暂存区移出,状态回到"已修改"。

  • 提交文件

    bash 复制代码
    git commit -m "提交信息"

    将暂存区的文件提交到仓库,状态变为"已提交"。

  • 查看提交历史

    bash 复制代码
    git log

6.6 示例:文件状态的转换

假设你正在开发一个项目,以下是一个文件状态的转换过程:

  1. 创建一个新文件

    bash 复制代码
    touch new-file.txt
    • 文件状态:未跟踪(Untracked)。
  2. 查看文件状态

    bash 复制代码
    git status
    • 输出:Untracked files: new-file.txt
  3. 暂存文件

    bash 复制代码
    git add new-file.txt
    • 文件状态:已暂存(Staged)。
  4. 查看文件状态

    bash 复制代码
    git status
    • 输出:Changes to be committed: new-file.txt
  5. 提交文件

    bash 复制代码
    git commit -m "Add new-file.txt"
    • 文件状态:已提交(Committed)。
  6. 修改文件

    bash 复制代码
    echo "Hello, Git!" >> new-file.txt
    • 文件状态:已修改(Modified)。
  7. 查看文件状态

    bash 复制代码
    git status
    • 输出:Changes not staged for commit: new-file.txt
  8. 暂存修改

    bash 复制代码
    git add new-file.txt
    • 文件状态:已暂存(Staged)。
  9. 提交修改

    bash 复制代码
    git commit -m "Update new-file.txt"
    • 文件状态:已提交(Committed)。

7.git reset 回退版本

bash 复制代码
git reset  --soft #保存工作区和暂存区内容
git reset --hard #都不保存
git reset --mixed #工作区内容保存,暂存区不保存

8.git diff 查看差异

git diff不加参数默认比较工作区和暂存区文件差别

当你工作区的文件已提交到暂存区再修改工作区内的文件时:


git diff HEAD比较工作区与版本库的差异
git diff --cached比较暂存区和版本库之间的差异
git diff 两个提交版本ID比较两次提交之间差异
git diff HEAD~ HEAD HEAD表示最新版本 HEAD~表示最新版本的上一个版本

9.如何在版本库中删除文件

1.直接用rm进行本地删除

此时只删除了本地工作区的文件,暂存区的文件还没有删除。可以使用命令进行查看:

bash 复制代码
git ls-files

此时能看到file1文件还在暂存区中,可以使用以下两条命令均可删除。

bash 复制代码
git add .
git add file1.txt

2.直接使用git rm进行删除

git rm <文件名>

无论哪种删除,删除完后记得提交

10. gitignore

.gitignore 文件的主要作用是告诉 Git 哪些文件或者文件夹是不需要被纳入版本控制的。也就是说,当 Git 在对文件进行追踪和管理时,会忽略掉 .gitignore 文件中列出的那些文件。它通常位于版本仓库的根目录下。例如,如果你有一个名为 "my - project" 的 Git 仓库,那么 .gitignore 文件一般放在 "my - project/.gitignore"。

常见的忽略内容示例

  • 编译产物:在软件开发中,如 C++ 的 .o 文件、Java 的 .class 文件等。这些文件是通过编译源代码生成的,在版本控制中不需要关注它们,因为它们可以通过源代码重新生成。
    • *.o
    • *.class
  • 临时文件:像文本编辑器产生的临时备份文件(如 Emacs 的 *~ 文件),或者 IDE(集成开发环境)产生的临时文件(如 IntelliJ IDEA 的 .idea/workspace.xml)。
    • *~
    • .idea/workspace.xml
  • 环境配置文件:例如,包含数据库连接信息、API 密钥等敏感数据的配置文件。这些信息通常因开发环境不同而有所差异,并且不应该被公开在版本库中。
    • config/database.yml
  • 操作系统相关的文件:不同操作系统的系统文件,如 Windows 的 Thumbs.db 文件(用于存储文件夹缩略图信息)。
    • Thumbs.db
      本次演示编辑.gitignore忽略log日志文件。
bash 复制代码
vim .gitignore

11. SSH配置和克隆仓库

现在注册github账号并创建新的仓库用于远程连接

  • 使用https方式将代码push到远程仓库时会验证账户和密码。
  • 使用ssh不需要验证用户名和密码,但需要在git仓库里添加SSH公钥。

配置公钥

bash 复制代码
cd .ssh
ssh-keygen -t rsa -b 4096
#回车然后输入密码
ls -ltr #生成了一个id_rsa.pub的公钥
vim id_rsa.pub#将里面内容全部复制

回到github网站点击个人头像setting,找到SSH and GPG keys 创建新SSH keys ,把内容复制进去,随便取名。

返回新建远程仓库,点击url旁边复制按钮,本地克隆。

本地文件上传

bash 复制代码
cd remote-repo/
echo hello>hello.txt
git add .
git commit -m "first commit"
git push

如果想把远程仓库内的内容更新到本地仓库,则需要使用

bash 复制代码
git pull

12.关联本地仓库和远程仓库

  1. 添加远程仓库

    使用 git remote add 命令将远程仓库关联到本地仓库。例如,假设远程仓库 URL 是 https://github.com/username/repository.git,你可以这样做:

    bash 复制代码
    git remote add origin https://github.com/username/repository.git

    其中,origin 是远程仓库的默认名称,通常你可以保持这个名称,但也可以自定义为其他名字。

  2. 查看远程仓库是否添加成功

    使用以下命令查看远程仓库信息:

    bash 复制代码
    git remote -v

    你应该能看到类似这样的输出:

    bash 复制代码
    origin  https://github.com/username/repository.git (fetch)
    origin  https://github.com/username/repository.git (push)
  3. 推送到远程仓库

    如果你已经在本地做了提交,并且想要将它们推送到远程仓库,可以使用:

    bash 复制代码
    git push -u origin master

    这里,master 是你要推送的分支。如果你使用的是 main 分支,命令应该是:

    bash 复制代码
    git push -u origin main
  4. 获取远程仓库更新

    如果远程仓库有更新,你可以使用以下命令从远程仓库拉取(fetch)或合并(pull)更新:

    bash 复制代码
    git pull origin main

这样,本地仓库就和远程仓库关联并同步了。如果遇到合并冲突,你可以手动解决冲突后提交。
未完待续

相关推荐
细心的莽夫2 分钟前
Elasticsearch复习笔记
java·大数据·spring boot·笔记·后端·elasticsearch·docker
该死的碳酸饮料呀1 小时前
PLOG安装
linux·ubuntu
码农周2 小时前
Elasticsearch 报错 Limit of total fields [1000] has been exceeded
大数据·elasticsearch
徐凤年_2 小时前
Ubuntu20.04下GraspNet复现流程中的问题
linux·python·ubuntu·ai
Stuomasi_xiaoxin2 小时前
如何Ubuntu 22.04.5 LTS 64 位 操作系统部署运行SLAM3! 详细流程
linux·运维·ubuntu·ros·slam3
biubiubiu07062 小时前
git提交
git
ljh5746491192 小时前
git撤销最近一次commit
git
Elastic 中国社区官方博客3 小时前
Elasticsearch 堆内存使用情况和 JVM 垃圾回收
大数据·jvm·数据库·elasticsearch·搜索引擎·全文检索
三体世界4 小时前
Linux 管道理解
linux·c语言·开发语言·c++·git·vscode·visual studio