(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文件:
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’ 暂存区内容保存为一个正式版本 ,命名为frist
Git branch -M main 修改本地git分支,主要是为了与github上分支名称一致
Git remote add abc https://github.com/ijoanne888/test.git 添加/绑定一个远程仓储地址 将其命名为abc
Git 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 website
git 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
添加一个远程仓库,名字叫 origin
git push -u origin main
把本地 main 分支上传到 GitHub 的 origin 仓库。(-u 的意思是建立跟踪关系。以后再上传时,只需要:git push)
git push -u origin main --force
如果 GitHub 仓库已经有旧内容,最后一步可能失败。这时如果你确定要用当前本地内容覆盖 GitHub,执行:
第二次修改
不需要重新执行 git init、添加远程仓库或者修改分支名。只需要三步
git add .
git commit -m "second"
git 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”
填写:
- Title:
opencloudos-server - Key type:
Authentication Key - Key:粘贴刚才完整的公钥
然后测试:ssh -T git@github.com
成功后会显示类似:Hi ijoanne888! You've successfully authenticated...
再修改远程地址并推送(git remote -v 先确认别名):
git remote set-url abc git@github.com:ijoanne888/huiyuguoji.com.git
git push -u abc main
如果显示的是SSH地址:
abc git@github.com:ijoanne888/huiyuguoji.com.git (fetch)
abc git@github.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.pub
chmod 644 /root/.ssh/id_ed25519.pub
cat /root/.ssh/id_ed25519.pub
如何恢复到上一个版本:
git log --oneline (查询提交版本)
git log --stat(查看详细信息,版本提交名称,提交时间,提交人,提交文件等)
通过git log --oneline 查询版本信息
leo@leodeMac-mini git % git log --oneline
538d532 (HEAD -> main, test/main) three
9822235 second
9eb8346 test
第二版的版本号是:9822235
从第二版复制出一个新分支:(main 保留最新版;version-2 保存并使用第二版;在第二版基础上修改不会影响 main)
git 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 判断分支(*符号就是当前的分支)

568

被折叠的 条评论
为什么被折叠?



