1 相关命令
- Workspace:工作区
- Index/Storage:暂存区
- Repository:本地仓库
- Remote:远程仓库
新建代码库:
- git init
- git init + 项目名:新建一个目录并将其初始化为Git代码库
- git clone + url:下载一个项目和它的整个代码历史
配置:
- git config --list:显示当前的Git配置
- git config -e [--global]:编辑Git配置
- git config [--global] user.name / user.email + 用户名 / 用户电子邮箱:修改用户名或电子邮箱
修改文件:
- git add + 文件/目录:添加指定文件/目录到暂存区
- git add:添加当前目录的所有文件到暂存区
- git rm + 文件:删除工作区文件
- git rm --cached + 文件:停止追踪文件
- git mv + 旧文件名 新文件名:修改工作区文件名
代码提交:
- git commit -m + 提交信息:提交暂存区到仓库区
- git commit + 文件名(可多个) -m + 提交信息:提交暂存区的指定文件到仓库区
- git commit -v:提交时显示所有不同之处
- git commit --amend -m + 提交信息:使用新提交替代上一次提交
分支:
- git branch:列出本地所有分支
- git branch -r:列出远程所有分支
- git branch -a:查看本地分支和远程分支的信息
- git branch + 分支名:新建一个分支(不切换当前分支)
- git checkout -b + 分支名:新建一个分支(切换至新建分支)
- git branch --track + 分支名 远程分支名:新建分支并追踪远程分支
- git merge + 分支名:合并指定分支到当前分支
- git branch -d + 分支名:删除分支
- git push origin --delete + 分支名:删除远程分支
- git checkout + 分支名:切换到指定分支
- git branch --set-upstream-to=远程分支 本地分支:指定本地分支追踪远程某分支
- 强制将本地分支更新为远程分支:git fetch --all + git reset --hard 远程分支
一些常用的其他命令:
- git log -S + 关键词:根据关键词搜索提交历史
- git diff --shortstat "@{0 day ago}":今天写的代码量
- git fetch [远程分支名]:下载远程仓库的所有变动
- git remote show + 远程分支名:显示远程仓库信息
- git remote add + 名字:增加一个新的远程仓库并命名
- git pull [remote] [branch]:取回远程仓库的变化并与本地当前分支合并
- git push [remote] [branch] / --force / --all:上传本地分支到远程仓库 / 即使有冲突 / 所有分支到远程仓库
2 Q&A
2.1 如何验证gitee与当前电脑中git的ssh配置是没问题的?
2.1.1 SSH
SSH(Secure Shell)是由IETF(The Internet Engineering Task Force)制定的安全协议,是专门为远程登录会话和其他网络服务提供安全性的协议,可以弥补网络中的漏洞。通过SSH传输的数据会被加密,能够防止DNS欺骗和IP欺骗;且传输的数据是经过压缩的,还可以加快传输速度。
SSH只是一种协议,存在包括商业实现和开源实现等多种实现。
2.1.2 SSH安全机制
SSH默认使用端口22。
SSH采用RSA加密了所有传输的数据。
传统的网络服务程序如FTP、PoP、Telnet,其在网络上使用明文传输数据,很容易遭到中间人man-in-middle的攻击。
SSH采用两种级别的验证方式:
- 基于口令的安全验证:只需知道账号和口令即可远程登录主机。此种方式不能保证连接到的服务器为目的服务器。
- 基于秘钥的安全验证:通过一对秘钥来验证,公钥放到需要访问的服务器上,私钥在本地保管。