记录 Git & GitHub 一些使用方法
Git 基本操作
SSH key
- 创建 SSH key
复制 key 到 Github SSH 设置中
- 验证连接
配置用户名、email、默认文本编辑器
git config --global user.name "Frank"
git config --global user.email "812359326@qq.com"
git config --global core.editor gedit
Check config
工作区、暂存库、版本库
进入仓库、初始化
克隆仓库
Git基本操作命令
提出更改,添加到暂存区
查看仓库当前的状态,显示有变更的文件
比较文件的暂存区和工作区的差异
改动提交到 HEAD 版本库, 但还没到远端仓库
回退版本,可以指定退回某一次提交的版本
- --soft 参数用于回退到某个版本, 只进行对commit操作的回退,不影响工作区
- --hard 参数撤销工作区中所有未提交,将暂存区与工作区都回到上一版本
- --mixed 为默认,可以不用带该参数,重置暂存区与上一次的commit保持一致,工作区文件内容保持不变
删除文件
- 不带参数时,将文件从暂存区和*工作区中删除
- -- cached 文件仅从暂存区域移除,工作目录保留
查看历史提交记录
添加远程仓库
删除远程仓库、重命名远程仓库
查看当前配置的远程仓库
把远程仓库master分支下载到本地并存为temp分支
合并本地的temp分支和master分支
拉取远程代码并合并
推送代码至远程并合并
Git分支管理
Git分支
创建分支
- 不带[branchname]时,列出所有分支
删除分支
切换分支
- -b 表示创建新的分支并切换到该分支下
- 切换分支的时候,Git 会用该分支的最后提交的快照替换你的工作目录的内容,所以多 分支不需要多个目录
将temp分支和本地的master分支合并
- --allow-unrelated-histories 参数会允许合并无关历史,当远程版本远高于本地版本时,可能需要
Fork后本地项目同步他人更新
Git可能会出现的问题
鉴权失败
用户名和密码的登录方式失效,需要到 Dev Settings 设置 Token.
每次 pull/push 都要鉴权
无法合并
本地版本太老,先远程下载分支,然后本地合并:
bash git fetch origin master:temp git merge temp --allow-unrelated-histories
想要忽略某个文件(文件夹)
使用 .gitignore 文件
```bash # 忽略 Holiday Homework
Holiday Homework/
# 忽略 .class
.class
```
已经上传至版本库后,想要忽略某个文件(文件夹)
git清除本地缓存(改变成未track状态),然后再提交