GitHub 使用说明

(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’ 暂存区内容保存为一个正式版本 ,命名为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  判断分支(*符号就是当前的分支)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值