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

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

相关推荐
那年窗外下的雪.几秒前
AIDC 学习日志|第 21 天|EVPN 多归属故障演练与中断窗口定位
网络·git·学习
waiting9711181 小时前
Ubuntu 26.04 + Android14安装与编译教程
android·linux·ubuntu
玖石书3 小时前
Git Submodule 完全指南:从添加到日常维护的常规操作全流程
大数据·git·elasticsearch
keyipatience3 小时前
IP网络层
服务器·网络·网络协议·ubuntu·http
晴天164 小时前
ES 标准、V8 引擎与 Node.js 版本联动关系全解与实战踩坑
大数据·elasticsearch·node.js
牢姐与蒯4 小时前
Linux进程(七).进程控制
linux·运维·服务器·ubuntu
微尘寒风6 小时前
git创建版本库
git
console.log('npc')15 小时前
Git 冲突与 AI 协助指南
前端·人工智能·git·大模型
pingglala18 小时前
ubuntu-nat模式不能上网解决方法
linux·运维·ubuntu
微软技术分享19 小时前
Ubuntu 本地部署Ollama+OpenWebUI教程
数据库·ubuntu·postgresql