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 网站的设置里面得到(账户的设置 Developer settings,而不是仓库的设置。记得生成 token 前 scope 要选好勾上。)。这里的 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,否则,别轻易用 hard。

好像挺难理解,没关系,只要记住,我们使用 git 有 add commit 等操作,如果你发现 commit 错了,想返回,可以把最后一层 commit 掀起来,用 soft。如果你发现 add 错了,想反悔 add,就用 mixed,如果你发现,你本地的代码写了好久,越写越错,想倒回到一个正确的版本再来,那么用 hard。

比如说,如果那你发现自己 add+commit 错了,想重新 add+commit,那么你就可以用 git reset --mixed 直接恢复到 add 之前的状态。

强制回滚到 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 checkout 只放弃本地

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

git pull 强制覆盖本地
git fetch --all
git reset --hard origin/main

如果记不住,没关系,也可以用

git checkout .
git pull
git commit -a 同步删除

若本地删除了一些文件,想在本地仓库和远程仓库同步删除,可以用 git commit -a 的参数,表示删除的也同步。

一些问题解决

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

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

无法添加远程仓库

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

如何 add 除指定文件(夹)之外的文件

添加.gitignore文件,里面填写你要忽略的内容

.git
bin

gitee 全局免账号密码配置

git config --global credential.helper store

之后,只要第一次输入账号密码,之后就再有不需要输入了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

陆嵩

有打赏才有动力,你懂的。

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值