---Git使用
Git配置
Git四个关键区域
对于git操作流程,主要有一下四个关键区域:工作区(workspace),暂存区(Index),本地仓库(Repository),远程仓库(Remote)
- 工作区 本地电脑存放项目文件的地方
- 暂存区 就是将文件暂存的地方,通常使用add命令将工作区文件添加进暂存区内
- 本地仓库
通常通过commit等命令将暂存区提交给master分支上,也就是意味打了一个版本,也可以说代码提交到了本地仓库中 4. 远程仓库 线上的git服务器,如gitlab,github,gitee上的项目就是一个远程仓库
Git操作指令
一.工作区
将工作区中的项目配置git进行管理,将项目使用git初始化
git init
注意:生成的 .git 目录中存放的是本地库相关文件,不要删除
从远程仓库拉取项目:
git clone <url>
提交工作区所有文件至暂存区
git add .
提交工作区指定文件至暂存区
git add <file 0> <file 1> .....<file n>
提交工作区指定文件夹至暂存区
git add [dir]
撤销、丢弃工作区的修改。也就是就是让这个文件回到最近一次git commit或git add时的状态。
git checkout --<file>
同时删除工作区和暂存区文件
git rm <file1> <file2>
取消暂存区已经暂存的文件:
git reset HEAD <file>...
查询当前工作区所有文件的状态
git status
比较工作区中当前文件和暂存区之间的差异
git diff
二.暂存区
提交更改
git commit -m [message]
把暂存区的指定文件提交到本地仓库中的当前所在分支
git commit [file1] [file2] ... -m [message]
比较暂存区与上一版本的差异
git diff --cached
比较暂存区指定文件与上一版本的差异
git diff <file-name> --cached
查看历史记录
git log #可以显示所有提交过的版本信息
git reflog #常用(可以查看所有分支的所有操作记录(包括已经被删除的 commit 记录和 reset 的操作))
git log --greph #图形显示,更直观
git log --pretty=oneline #漂亮一行显示
创建分支
git branch <branch-name>
从当前分支切换到其他分支
git checkout <branch-name>
删除分支
git branch -d <branch-name>
指定分支合并到当前分支
git merge <分支名>
显示本地仓库的所有分支
git branch
- 第一步:编辑,删除特殊标记
<<<
===
- 第二步:修改到满意位置,保存退出
- 第三步:添加到缓存区
git add 文件名
- 第四步:提交到本地库
git commit -m '日志信息'
注意:后面一定不能带文件名
三.本地仓库
获取远程仓库信息
git fetch <远程主机名> <分支名>
将本地仓库某分支推送到远程仓库上
git push [remote-name] [branch-name]
查看远程仓库的详细信息
git remote show origin
取回远程主机某个分支的更新,再与本地的指定分支合并
git pull
Git中的分支
一.Git中的HEAD和master
在git中,我们可以把HEAD理解成一个指针,这个指针指向我们的开发分支。如下图所示,当我们当前处于master分支时,HEAD指向了master分支。
此时,当我们(checkout)检出到dev分支时,那么HEAD指针就会指向dev指针。
git checkout dev
git branch
* dev
master
当我们在dev上进行开发提交,dev就会指向当前分支的最新提交,而master分支依旧保持master之前的提交状态
当我们把dev合并到master上,git将master指向dev 的当前提交,完成合并
git checkout master
git merge dev
二.git fetch + git merge(git rebase) = git pull(大多数情况)
当线上master的位置随着其他人的代码文件提交。线上的master将与本地orgin/master不再对应。本地master也与线上master所处的位置不在同一分支
解决这个问题,我们需要将本地开发分支改成如下情况
git fetch + git merge(git rebase)
git fetch后本地的工作区(workspace)不会自动生成一份可编辑的副本,抓取结果存储于版本库(Repository),也就是图中版本A1,A2
当我们把git merge 改变为 git rebase也会有大致相同的效果,并且此时开发分支master并没有合并过后的痕迹
常见问题FAQ
- 免费下载或者VIP会员专享资源能否直接商用?
- 本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
- 提示下载完但解压或打开不了?
- 找不到素材资源介绍文章里的示例图片?
- 模板不会安装或需要功能定制以及二次开发?
发表评论
还没有评论,快来抢沙发吧!