【Git】Git 常用命令
常用命令
1 | git init |
在远程分支与本地分支之间建立联系
在本地分支新创建的分支没有与远程分支建立联系,需要使用以下指令建立本地分支与远程分支的联系,之后即可 pull
1 | git checkout -b dev |
更新远程分支列表
在远程仓库的分支发生变化而本地仓库的分支没有更新时使用
1 | git remote update origin --prune |
Git 基本原理
工作区域
Git 本地有三个工作区域:
- 工作目录(Working Directory):平时存放项目代码的地方
- 暂存区(Stage / Index):用于临时存放你的改动,事实上他只是一个文件,保存即将提交的文件列表信息
- 资源库(Repository 或 Git Directory):安全存放数据的地方,这里面有你提交到所有版本的数据,其中 head 指向最新放入仓库的版本
如果再加上远程的 git 仓库(Remote Directory),就可以分为四个工作区域。文件在这四个区域之间的转换关系如下:
创建工作目录与常用命令
文件的四种状态
版本控制就是对文件的版本控制,要对文件进行修改、提交等操作,首先要知道文件当前在什么状态,不然可能会提交了现在还不想提交的文件,或者要提交的文件没提交上。
- Untracked:未跟踪,此文件在文件夹中,但没有加入到git库,不参与版本控制,通过
git add
状态变为 Staged - Staged:暂存状态,执行了
git commit
则将修改同步到库中,这时库中的文件和本地文件又变为一致,文件为 Unmodified 状态,执行git reset HEAD filename
取消暂存,文件状态为Modified - Unmodify:文件已入库,未修改,即版本库中的文件快照内容与文件夹中完全一致,这种类型的文件有两种去处,如果他被修改而变为 Modified,如果使用
git rm
移出版本库,则成为 Untracked 文件 - Modified:文件已修改,仅仅是修改,并没有进行其他操作,这个文件也有两个去处,通过
git add
可进入暂存 Staged 状态,使用git checkout
则丢弃修改过,返回到 Unmodify 状态,这个git checkout
即从库中取出文件,覆盖当前修改
查看文件状态
上面说文件有四种状态,通过如下命令可以查看到文件的状态
1 | # 查看指定文件状态 |
各种疑难杂症解决方案
Failed to connect to github.com port 443:connection timed out
这种报错很多是因为使用了梯子所导致的代理问题,解决方案:重新设置本地代理的端口号(Clash里代理端口号为7890)
1 | git config --global http.proxy http://127.0.0.1:7890 |