GitHub(Gitee) 和 Git 的使用笔记(持续更新)

Posted 陆嵩

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了GitHub(Gitee) 和 Git 的使用笔记(持续更新)相关的知识,希望对你有一定的参考价值。

GitHub(Gitee) 和 Git 的使用笔记(持续更新)

文章目录

新建仓库并上传代码

  • 在 GitHub 网站上新建一个仓库。
  • 本地初始化仓库并上传代码
    git init
    git add .
    git commit -m "first commit"
    git remote add origin https://github.com/lusongno1/drops2.git
    git branch -M main
    git push -u origin main
    

2021.8.13 之后更新提交代码,会遇到这个问题:remote: Support for password authentication was removed on August 13, 2021. Please use a personal access token instead. 所以,我们这里可用 token 的方式连接远程仓库。直接把 token 填入输入密码处,但是需要每次 push 都输入。不妨使用如下方式重置链接,
git remote set-url origin https://your_token@github.com/lusongno1/drops2.git
token 可以在 github 网站的设置里面得到。这里的 your_token 要换成你的 token。

通过鼠标点击上传文件当然也可,但是文件夹里的文件个数超过 100 个的时候就会比较麻烦。建议还是通过命令行的方式上传。

git branch -M main 表示强制重命名本地的分支名,避免上传的时候冲突。

关于 GitHub Pages

目前想要将网页托管,需要将仓库设置为共有账户或者付费的私有仓库。
上传好仓库文件后,需要将网页 publish 成可访问的网页。在 Settings-> GitHub Pages 下,如果看到,形如
Your site is ready to be published at https://lusongno1.github.io/xxx/
表示成功,静待几分钟即可。

Git 操作撤销总结

git reset

有五个状态,我们用英文字母来表示:

  • A:本地没改(orgin)
  • B:本地已修改(modified)
  • C:已 add (staged)
  • D:已 commit (committed)
  • E:已 push (pushed)

先不考虑 push 这一步。

git reset --hard xxx:无论哪里,直接强制到 A(某版本)。
git HEAD:等价于 git --mixed HEAD^,直接到 B,保留本地修改。也就是说,不管用这个命令回退到哪个版本,变的只是 D,C 跟随 D,B 不动。
git reset --soft HEAD^:回到 C 状态,缓冲区的东西还在。

只需要记回到 A 或者 B,因为 B->C、C->D 都是极易的操作,比如回到 C,可以先回到 B,再 add 一次即可。所以,第三条 soft 可以不用记,用处不大。
所以,一般情况用 mixed 就行了,它几乎只是涉及 C 和 D 的改动。想丢弃自己改的乱糟糟的本地代码时可以 hard,否则,别轻易用 head。

强制回滚到 github 最后版本

git fetch --all
git reset --hard origin/main
git pull origin main

丢弃临时修改,回退得到本地 HEAD 版本

git checkout .
or
git reset --hard (上已介绍)

注意,这样回滚,新建的文件不会删除,因为没 track 到。需要手动删除。如:

git checkout . && git clean -xdf

git 使用 reset 后如何回来

尝试 git reflog 查看历史版本号,再使用 git reset

git pull 强制覆盖本地

git fetch --all
git reset --hard origin/main

git checkout 只放弃本地

使用 git checkout . 只放弃本地的修改,已 add 和 commit 的不回滚。

一些问题解决

github中文件夹后面跟@+数字什么意思?为什么git clone下来里面是空的?

@后面的数字是哈希值,用于确定唯一的提交状态。文件push时会压缩,然后上传同时生成一串检验字符串。at后面的数字就是检验字符串的前面部分。
是带有子模块的项目;需要进入下载的文件下,运行命令 git submodule update --init --recursive 即可。

无法添加远程仓库

在一台新机器上连接远程仓库:
git remote add origin https://gitee.com/lusongno1/thesis.git
此前要先 git init

以上是关于GitHub(Gitee) 和 Git 的使用笔记(持续更新)的主要内容,如果未能解决你的问题,请参考以下文章

6.25笔记(idea中git的应用)

git与gitee?

从github迁移git存储库到gitee 2022-02-15

使用git之旅

使用git之旅

Git将一个项目同时从本地推送到GitHub和Gitee