reset :初始化终端
Git 配置
git config -l 查看配置
git config --system --list 查看系统配置
git config --globa --list 查看用户配置
git config --globa user.name 用户名
git config --globa user.email 邮箱
Git 工作区域
工作区(working derectory):开发路径
暂存区(stage/Index):.git下index文件,记录git add.添加文件的相关信息(文件名,大小),不保留文件实体,通过id指向文件实体
本地仓库/资源库(Repository/Git directory):位于本地,保存已提交的各个版本
远程仓库(Remote directory):位于托管代码的服务器
工作流程
工作区添加/修改文件;
将修改后的文件放入暂存区(git add.);
将暂存区的文件提交到本地仓库(git commit -m "消息内容");
将本地仓库的修改推送至远程仓库(git push).
文件状态
Untracked: 未跟踪, 此文件在文件夹中, 但并没有加入到git库, 不参与版本控制.
通过<git add> 状态变为Staged
Unmodify: 文件已经入库, 未修改, 即版本库中的文件快照内容与文件夹中完全一致. 这种类型的文件有两种去处, 如果它被修改, 而变为Modified. 如果使用<git rm>移出版本库, 则成为Untracked文件
Modified: 文件已修改, 仅仅是修改, 并没有进行其他的操作. 这个文件也有两个去处, 通过git add可进入暂存Staged状态, 使用 <git checkout> 则丢弃修改过, 返回到Unmodify状态, 这个<git checkout>
即从库中取出文件, 覆盖当前修改
Staged: 暂存状态. 执行<git commit>
则将修改同步到库中, 这时库中的文件和本地文件又变为一致, 文件为Unmodify状态. 执行 <git reset HEAD filename>
取消暂存, 文件状态为Modified
Git命令
git init 本地仓库搭建
git clone [url] 克隆远程仓库
git status 查看所有文件状态
git status [filename] 查看指定文件状态
git add. 提交所有文件到暂存区
git commit -m "消息内容" 提交暂存区文件到本地仓库中
git push 提交远程仓库
分支
git branch 列出所有本地分支
git brancr -r 列出所有远程分支
git brancr -[branch-name] 新建一个分支
git checkout -b [branch-name] 新建一个分支并切换
多个分支并行执行时,会导致代码不冲突(同时存在多个版本)
项目AB分支同时进行开发时,A分支开发过程中有其他分支B上线,并且B分支上线版本已同步(merge)到master,则须合并已上线版本到正在开发的分支A上,避免A分支上线时覆盖B分支的代码,导致功能倒退
git checkout [branch-name] 切换一个分支
git merge [branch-name] 合并指定分支到当前分支
git push origin 推送本地分支到远程分支
git push origin --delete [branch-name] 删除分支
git push -dr [remote/branch-name]