
(1) 仓库 (Repository) 仓库是用来存放项目代码每一项目对应一个仓库。(2) 收藏 (Star) 收藏别人的仓库方便自己查找。(3) 复制/克隆项目 (Fork)。别人仓库的代码可以克隆到自己的账号下的中可以对仓库进行更改。自己在仓库中对bug进行更改不会影响原作者的仓库但可以通过向原作者发起请求 (Pull Request)。Fork也可以理解为分叉。(4) 关注(Watch)使用Watch功能关注了其他作者的仓库如果作者的仓库发生更新会发送通知到自己的账户上(5) 事物卡片(Issue)发现别人的仓库代码出现Bug或有疑问时可以通过Issue来和代码的作者进行咨询和讨论。然后作者可以收到别人的提问然后可以回复。回复完成可以关闭当前的Issue。常用命令Git分区有哪些(1) 工作区(Working Directory) 添加、编辑、修改文件等操作。(2) 暂存区(Stage) 暂存已修改的文件最后会统一提交到Git仓库中。git ls-files --stage 查看暂存区都有哪些文件Git status. 查看当前工作区、暂存区状态(3) Git仓库(Git Repository ) 最终确定的文件保存到Git仓库成为一个新版本。重要如果网站已经完成搭建优先创建.gitignore文件为什么要创建.gitignore这个文件git init - 创建 .git 目录git add . - 创建/更新 .git/index 暂存区git commit - 根据暂存区生成一次提交Git是创建在本地或服务器上通过git init 初始化创建一个.git文件夹本地 Git 仓库的核心数据目录工作区就在同.git同一目录下的其他程序文件。暂存区是 Git 提交前的“候选清单”。(.git/index 文件中.git/index 不是用文本形式存的而是二进制格式存储的。Git 仓库首先是本地的 .git 文件夹。GitHub 上的是远程仓库用来备份、协作、同步代码。整体流程工作区 - git add - 暂存区 - git commit - 本地 Git 仓库 - git push - GitHub 远程仓库第一次全流程简化Git init 初始化工作区Git add . 将所有文件添加到暂存区Git commit -m ‘first’ 暂存区内容保存为一个正式版本 命名为fristGit branch -M main 修改本地git分支主要是为了与github上分支名称一致Git remote add abc https://github.com/ijoanne888/test.git 添加/绑定一个远程仓储地址 将其命名为abcGit push -u abc main 将main分支上的内容上传到abc的这个仓储地址创建仓库cd /www/wwwroot/xxx进入到你的网站目录rm -rf .git删除当前目录里的 Git 记录。.git 是 Git 的隐藏目录里面保存提交历史、分支、远程仓库地址等信息。删掉它以后代码文件还在但 Git 历史会被清空。git init重新初始化 Git 仓库。执行后当前目录会重新生成一个新的 .git 文件夹。git config user.name “git账号名称git config user.email “git邮箱”设置当前项目的 Git 提交作者信息。注意这里没有 --global所以只对当前项目生效。git add .把当前目录下所有文件加入 Git 暂存区。意思是告诉 Git这些文件准备进入下一次提交。git commit -m Initial Next.js website创建一次提交提交信息是Initial Next.js websitegit commit -m Initial Next.js website 详细说明把当前 Next.js 项目的所有已暂存文件保存为第一个正式版本说明叫 Initial Next.js website。git commit - 表示创建一次提交也就是生成一个版本快照。-m - 表示直接在命令里写提交说明不打开编辑器。Git 会在本地仓库 .git 里保存一个提交对象。这个提交对象会记录这次提交包含哪些文件内容提交人是谁提交时间提交说明上一次提交是谁如果有git branch -M main把当前分支名称改成 main。Git 默认可能叫 master现在 GitHub 通常用 main。git branch 管理分支git remote add origin https://github.com/git账号名称/xxx.git绑定 GitHub 远程仓库地址。origin 是远程仓库的默认名字意思是以后 git push 就知道要上传到哪里。git remote 查看当前有哪些远程仓库名称git remote -v 查看远程仓库名称和对应地址。git remote add origin https://github.com/ijoanne888/huiyuguoji.com.git添加一个远程仓库名字叫 origingit push -u origin main把本地 main 分支上传到 GitHub 的 origin 仓库。-u 的意思是建立跟踪关系。以后再上传时只需要git pushgit push -u origin main --force如果 GitHub 仓库已经有旧内容最后一步可能失败。这时如果你确定要用当前本地内容覆盖 GitHub执行第二次修改不需要重新执行git init、添加远程仓库或者修改分支名。只需要三步git add .git commit -m secondgit push因为第一次运行过git push -u abc main其中-u已经把本地main分支与远程abc/main建立关联所以之后直接执行git push即可。一般会遇到的问题fatal: unable to access fatal: unable to access https://github.com/xxxxx/xxxxx.com.git/: Failure when receiving data from the peer: Failure when receiving data from the peer本地提交已经成功但服务器与 GitHub 的 HTTPS 连接被中途断开通常是网络问题改用SSH推送生成服务器专用密钥ssh-keygen -t ed25519 -C github-server一路按回车然后查看公钥cat ~/.ssh/id_ed25519.pub通常以ssh-ed25519 AAAA...复制输出内容在GitHub进入“Settings” → “SSH and GPG keys” → “New SSH key”填写Titleopencloudos-serverKey typeAuthentication KeyKey粘贴刚才完整的公钥然后测试ssh -T gitgithub.com成功后会显示类似Hi ijoanne888! Youve successfully authenticated...再修改远程地址并推送(git remote -v 先确认别名)git remote set-url abc gitgithub.com:ijoanne888/huiyuguoji.com.gitgit push -u abc main如果显示的是SSH地址abcgitgithub.com:ijoanne888/huiyuguoji.com.git (fetch)abcgitgithub.com:ijoanne888/huiyuguoji.com.git (push)前面git 则表示成功 还是https则失败如果/root/.ssh/id_ed25519.pub不存在但私钥存在可以从私钥重新生成公钥ssh-keygen -y -f /root/.ssh/id_ed25519 /root/.ssh/id_ed25519.pubchmod 644 /root/.ssh/id_ed25519.pubcat /root/.ssh/id_ed25519.pub如何恢复到上一个版本git log --oneline (查询提交版本)git log --stat(查看详细信息版本提交名称提交时间提交人提交文件等通过git log --oneline 查询版本信息leoleodeMac-mini git % git log --oneline538d532 (HEAD - main, test/main) three9822235 second9eb8346 test第二版的版本号是9822235从第二版复制出一个新分支main 保留最新版version-2 保存并使用第二版在第二版基础上修改不会影响 maingit switch -c version-2 b5ade67 git switch -c 切换新的分支命名为version-2 - 这个名称可以自定义git switch (切换分支 如切换到mian 则 git switch main)一般只有在多版本开发的时候才回考虑分支只有自己一个人开发网站不需要所以大部分情况下也用不到分支的功能通过revert撤销第三个版本(撤销/恢复都是用revert进行操作git revert 538d532 --no-edit自动执行一次 commit创建新的版本git push如果想恢复第三个版本再执行一遍即可git revert xx --no-edit自动执行一次 commit创建新的版本git push其中xx这里是上次撤销的版本号需要通过git log —oneline查询命令含义:w保存但不退出:q退出有未保存内容时会拒绝:wq保存并退出:q!不保存强制退出:cq以错误状态退出适合取消Git提交i进入文字编辑状态Esc退出文字编辑状态注意git push 不会创建版本git commit 才会创建版本。git push 只是把已有的本地提交上传到远程仓库。通过git branch 判断分支*符号就是当前的分支