有用的知识: Github-Git代码互动流程
本地代码与远程代码互动流程
Github:简述--代码托管平台。细述: 百度一下
Git: 简述--分布式版本控制系统。细述: 百度一下
关系: 他们之间存在密切的联系和协同作用,可以帮助开发者更好地管理和协作开发代码项目。
安装Git
首先到Git官网下载安装, 具体安装流程就不多详细赘述了
配置Git
安装好Git后第一件事就是set你的用户名和邮箱, 一次配置终身使用,后期也可以自己修改。在git 命令行输入以下命令: (--global 全局配置)
git config --global user.name "用户名"
git config --global user.email "你的邮箱"
建立Git和Github之间的连接
基于ssh生成公钥和私钥把Git和Github连接, 连接之后才能传输信息。ssh生成的公钥和私钥后, 其中私钥保存本地, 公钥在Github上配置(打开Github-进入设置-找到ssh如下图进行公钥的配置并保存)。
生成公钥私钥
可以通过在Git命令行中输入ssh命令,查看本机是否安装 SSH(Git应该自带了SSH), 之后输入命令:
ssh-keygen -t rsa -b 4096 -C "your_email"
其中,-t rsa
表示使用 RSA 加密算法,-b 4096
表示指定密钥长度为 4096 位,-C
参数是添加注释信息,这里可以设置为你的邮箱地址。生成的私钥和公钥在命令行中可以找到对应存储位置, 文件带pub的是公钥, 公钥在Github上配置。
验证绑定是否成功
ssh -T git@github.com
当显示连接成功后。此时Git就已经和Github建立连接。
本地Git仓库初始化
初始化本地Git仓库
情况一: 本地没有 Git 仓库,可以通过将远程仓库clone到本地。通过clone(克隆)命令创建的本地仓库,其本身就是一个 Git 仓库, 无需再进行init初始化操作,且自动连接远程仓库。
//克隆远程仓库到本地形成一个本地仓库
git clone "远程仓库的url地址"
情况二:
手动初始化本地仓库, 需要手动连接远程Git仓库。在我们进行任何的git操作之前,我们都需要先切换到 Git 的仓库目录。在IDE中跑GitBash效果会比直接打开GitBash使用好一点。
把代码提交到本地Git仓库
git status
: 先查看本地仓库状态, 看是否还有未跟踪的文件git add ./git add <file name>
跟踪未跟踪的文件(将指定文件添加到暂缓区)git commit
: 提交代码到本地仓库
//在需要创建Git仓库的根目录下初始化本地Git仓库
git init
本地仓库连接远程仓库
//本地仓库连接远程仓库
git remote add origin "远程仓库的url地址"
//验证是否连接成功远程仓库
git remote -v
将本地Git仓库代码提交到远程Git仓库
- HTTP协议: 在第一次向远程仓库提交代码的时候,需要输入账号及密码进行验证。安全性相对较低, 数据传输较慢
- ssh密钥: 无需输入密码, 安全性高, 传输速度快!
//远程仓库代码更新后, 将远程仓库的代码"拉"取到本地仓库中, 使得本地和远程代码保持同步
git pull origin master
//本地仓库代码更新后, 把本地仓库的代码"推"向远程仓库中, 使得本地和远程代码保持同步
git push origin master
origin为远程仓库别名, 可以通过git remote
查看远程仓库别名。注意: 在pull中master为远程分支, 在push中master为本地分支(注意不一定是master, 看具体情况)在向远程仓库提交代码的时,一定要先进行pull操作,再进行push操作,防止本地仓库与远程仓库不同步导致冲突的问题。
常见Git命令
- git init: 初始化 Git 仓库: 在指定目录中执行该命令, 对应的文件会变为一个Git仓库
- git status: 查看本地Git仓库状态, 若出现下图情况表示本地Git仓库中存在未跟踪的文件, 则需要执行命令 git add 重新提交全部未跟踪的文件。
-
git add [file name]: 将指定文件添加到暂缓区(并不是直接添加到本地Git仓库), 也可以说是跟踪了这个文件。如果跟踪的文件发生改变了那么需要重新跟踪。
git add .
表示当前工作目录下所有修改过的文件都添加到暂存区 -
git commit: 提交文件到本地仓库中, 提交前需要执行 git status 查看仓库状态在确保全部文件被跟踪后执行 git commti 提交文件。写法扩展 git commit -m "提交信息"
-
git log: 查看仓库提交日志: 记录提交信息, 提交时间, 作者, 作者邮箱等。
-
git branch: 查看 Git 仓库的分支情况, 分支名前面带*号的表示主分支。
-
git branch <分支名>:表示创建一个分支。
-
git branch -d <分支名>: 删除分支
-
git branch -D <分支名>: 若分支的代码没有合并到主分支, 可能会删除不成功, 这是可以进行强行删除。
-
git checkout <分支名>: 切换分支
-
git merge <分支名>: 把传入的分支合并到主分支master中
-
git branch --merged: 查看所有合并到当前分支的分支
-
git branch --no-merged: 查看所有没有合并到当前分支的分支
-
git tag: 对当前分支添加标签信息, 对于重大的版本的更新我们常常会打上一个标签,以表示它的重要性。一般使用git tag v1 或者 git tag v1 -m "描述版本信息"(v代表版本)
-
git tag -d <标签名>: 删除当前分支的标签
-
git-remote: 命令用于管理 Git 仓库的远程仓库信息,包括添加、删除、查看等操作。
-v
参数用于显示远程仓库的详细信息,包括远程仓库的名称、URL 等。 -
git fetch: 用于从远程存储库中获取最新的代码到本地存储库中, 并不会自动合并这些更新到你当前所在的分支中。
-
git pull <指定分支> : 命令可以让你从 Git 存储库中获取最新的代码,并将其合并到当前指定的本地分支中。
-
git push <指定分支>: ,Git 将本地代码推送到指定的远程存储库,并将这些更改合并到远程目标分支中。
常见错误处理
使用 git pull
命令拉取远程仓库代码时,如果出现 fatal: refusing to merge unrelated histories
这通常是因为本地仓库与远程仓库的历史记录不一致,导致 Git 无法自动合并代码。
先执行以下命令,将本地仓库的历史记录与远程仓库对齐:
git pull --allow-unrelated-histories origin main
过后再进行push操作即可
转载自:https://juejin.cn/post/7230457573718687803