git工作流程
add后添加一个文件,删除一个文件
报错
模拟环境
git add *
将目录里的所有文件提交到暂存区后git status
查看状态 所有文件都是绿色的表示本地的文件和暂存区的文件是一样的- 然后在本地修改一个文件 然后新建一个文件
- 在使用
git status
查看状态 - 这两个文件都改变,并且两个文件都变为红色
- 修改的文件提示:
changes not staged for commit
更改没有进行提交表示 - 新增的提示
Untracked files
未跟踪的文件 - 再使用
git add *
将目录里的所有文件提交到暂存区后 - 再次使用
git status
查看状态 所有文件又都变绿色了
我们在本地修改一个文件的名(或者删除)用git status
提示Untracked files
提示那个文件被删除了
1 | Changes not staged for commit: |
方法1 可以 忽略Git中的untracked文件
- 具体方法是在版本管理的根目录下(与.git文件夹同级)创建一个 .gitignore,并保存在该位置。
- 在此文件下添加
- 忽略的文件名
- 文件目录后面加/
方法2 回退commit
git reflog
查看提交的哈希值
然后执行回退 git reset --hard <commit_id>
方法三
git rm -r --cached .
删除缓存区的所有内容,重新添加git add .
分支问题git branch
最初本地是没有分支的
github上已经有master分支 和dev分支
在本地
git checkout -b dev
新建并切换到本地dev分支
git pull origin dev
本地分支与远程分支相关联
在本地新建分支并推送到远程
git checkout -b test
git push origin test
这样远程仓库中也就创建了一个test分支
- 克隆代码
git clone https://github.com/master-dev.git
这个git路径是无效的,示例而已
- 查看所有分支
git branch --all
- 默认只有
master
分支,所以会看到如下两个分支 master
[本地主分支]origin/master
[远程主分支]- 新克隆下来的代码默认
master
和origin/master
是关联的,也就是他们的代码保持同步
- 创建本地新的dev分支
1
2git branch dev 创建本地分支
git branch 查看分支
- 这是会看到
master
和dev
,而且master
上会有一个星号 - 这个时候
dev
是一个本地分支,远程仓库不知道它的存在 - 本地分支可以不同步到远程仓库,我们可以在
dev
开发,然后merge
到master
,使用master
同步代码,当然也可以同步
- 发布dev分支
发布dev分支指的是同步dev分支的代码到远程服务器
git push origin dev:dev # 这样远程仓库也有一个dev分支了
- 在dev分支开发代码
git checkout dev
切换到dev分支进行开发
- 开发代码之后,我们有两个选择
第一个:如果功能开发完成了,可以合并主分支
git checkout master
切换到主分支git merge dev
把dev分支的更改和master合并git push
提交主分支代码远程git checkout dev
切换到dev远程分支git push
提交dev分支到远程
第二个:如果功能没有完成,可以直接推送
git push
提交到dev远程分支
注意:在分支切换之前最好先commit全部的改变,除非你真的知道自己在做什么
- 删除分支下面两条是删除本地分支
1
git push origin :dev 删除远程dev分支,危险命令哦
1
2
3git checkout master # 切换到master分支
git branch -d dev # 删除本地dev分
git branch 不带参数:列出本地已经存在的分支,并且在当前分支的前面加“*”号标记