赞
踩
已跟踪的文件是指那些被纳入了版本控制的文件,在上一次快照中有它们的记录,在工作一段时间后,它们的状态可能处于未修改,已修改或已放入暂存区。
工作目录中除已跟踪文件以外的所有其它文件都属于未跟踪文件,它们既不存在于上次快照的记录中,也没有放入暂存区。
初次克隆某个仓库的时候,工作目录中的所有文件都属于已跟踪文件,并处于未修改状态。
Workspace:工作区(当前用户操作修改的区域)
Index / Stage:暂存区 (add后的区域)
Repository:仓库区或本地仓库(commit后的区域)
Remote:远程仓库(push后的区域)
工作区–>add–>暂存区–>commit–>本地仓库区–>push–>远程仓库区
远程仓库区–>fetch–>使用refs\remotes下对应分支文件记录远程分支末端commit_id 和 本地仓库区 -->merge–>工作区
远程仓库区–>pull–>使用refs\remotes下对应分支文件记录远程分支末端commit_id and 本地仓库区 and 工作区
FETCH_HEAD:可以看做是一个版本链接,记录在本地的refs\remotes下对应分支文件中,指向着目前已经从远程仓库取下来的分支的最新版本的commitid。
commit-id:在每次本地commit来保存当前工作到本地仓库区后, 会产生一个commit-id,这是一个能唯一标识一个版本的序列号。在使用git push后,这个序列号还会同步到远程仓库。
git pull直接将远程分支的修改更新到本地仓库区和本地工作区,我们就可以在本地工作区中看到最新代码
git fetch只将远程分支的修改拉取到本地仓库,并更新到FETCHHEAD,记录远程分支最新的commitid,不会更新本地工作区代码,只有使用了git merge才会将提交更新到本地仓库区和工作区
Changes to be committed:代表被add的文件,被加载到了暂存区
Changes not staged for commit:代表在当前分支中被修改的文件,还没有被add,存储在工作区
Untracked files:代表不被Git追踪的文件,可以理解为不被Git管理的文件
如果没有Changes to be committed和Changes not staged for commit说明现阶段所有的修改已经被commit到本地仓库
如果git status后出现下述情况,说明还有已经的commit到本地仓库的还未被push到远程仓库
- $ git status
- On branch master
- Your branch is ahead of 'origin/master' by 2 commits.
- (use "git push" to publish your local commits)
HEAD:是当前分支引用的指针,它总是指向该分支上的最后一次提交。这表示HEAD将是下一次提交的父结点。通常,理解HEAD的最简方式,就是将它看做 你的上一次提交的快照。
index:index索引是你的 预期的下一次提交。我们也会将这个概念引用为Git的 “暂存区域”,这就是当你运行git commit时Git看起来的样子。Git将上一次检出到工作目录中的所有文件填充到索引区,它们看起来就像最初被检出时的样子。之后你会将其中一些文件替换为新版本,接着通过git commit将它们转换为树来用作新的提交。
Working Directory:最后,你就有了自己的工作目录。另外两棵树以一种高效但并不直观的方式,将它们的内容存储在.git文件夹中。工作目录会将它们解包为实际的文件以便编辑。
master分支为主分支(保护分支),禁止直接在master上进行修改代码和提交,此分支的代码可以随时被发布到线上;
develop分支为测试分支或者叫做合并分支,所有开发完成需要提交测试的功能合并到该分支,该分支包含最新的更改;
feature分支为开发分支,大家根据不同需求创建独立的功能分支,开发完成后合并到develop分支;
fix分支为bug修复分支,需要根据实际情况对已发布的版本进行漏洞修复。
架构升级或架构重大调整,修改第1位
新功能上线或者模块大的调整,修改第2位
bug修复上线,修改第3位
建议中文示例:
<新功能>(urllAnalyz)添加解析url功能
<修改>(TestServiceImpl)修改某功能的某个实现为另一个实现
<Bug修复>(TestUnti)修复url特殊情况下解析失败问题(issue#12)
<重构>(getData)重构获取数据的方法
<测试>(getDataTest)添加(修改、删除)获取数据的单元测试代码
<文档>(doc)修改(添加、删除)文档
对应到英文:
feat:新功能(feature)
style:格式
fix:修补bug
refactor:重构
test:测试相关
docs:文档(documentation)
格式(type:scope:body:issue)
<|新功能|修改|Bug修复|重构|测试>(影响模块)提交描述信息(#issue?)
优点作用:
与github数据issue关联,便于通过issue获取更多信息
commit 提交时,格式统一,便于后续快速准确定位提交
可以更好的将此次提交表述清楚
git init
git remote add <name> <http地址>
git add -A
git push --set-upstream origin master
git status
git diff <file_name>
git add -A 或者 git add <file_name> <file_name>
git commit -m '提交信息'
git push
git pull
git fetch
git merge
git rm -r --cache <file_name>
git config --global credential.helper store
git stash
git stash list
git stash drop
git init
git clone <http_url>
git add <file_name>
git commit -m '提交信息'
git push
git push --set-upstream <remote_name> <branch_name>
git diff显示本次所有被修改文件的修改
git diff 显示该文件本次的修改
git log
git merge <branch_name>
git checkout -
git checkout <branch_name>
git checkout 切换到基础分支
git checkout -b 在当前分支基础上创建新分支
git branch所有本地分支
git branch -r所有远程分支
git branch -a所有分支,本地和远程
git branch -D <branch-name>
git push origin --delete <branch-name>
git remote add <shortname> <url>
git push --set-upstream <远程仓库名称> <远程仓库中分支名称>
git remote rm <远程仓库name>
git tag -d <tag_name>
git push origin :refs/tags/<tag_name>
git show <tag_name>
git stash
git stash lsit
git stash apply(恢复后不删除暂存)
git stash pop(恢复后删除暂存)
git stash drop
git reset HEAD <file_name>
git rm -r --cache <file_name>
git cherry-pick <被merge分支中的某一个commit的commit-id>
git checkout -- <file_name>
git reset --hard <commit_id>
git remote prune origin
git fetch origin <branch_name>
- git tag <tag_name> <commit_id>
- git tag <tag_name> 当前commit
git merge --abort
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。