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 的使用笔记(持续更新)的主要内容,如果未能解决你的问题,请参考以下文章