git库所在的文件夹中的文件大致有4种状态
-
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
。
1 初始化git init
2 查看状态 git status
3 添加到暂存区 git add demo.txt (从untracked状态变更到staged状态)
4 修改demo.txt 文件 内容
5 再次git status 再次 git add
6 将当前目录下所有文件都纳入到staged状态 , git add . 添加所有的
如果当前工作树下有新创建的文件(处于untracked状态),又有已经改动的文件(处于modified状态),此时我们可以通过git add -A将所有文件均变为staged状态
7 把暂存区的文件 撤回到 未跟踪 状态 git rm --cached <file>...
回退上一个版本 git reset HEAD^
开发者 lisi 加入 开发了分类模块
查看分支 git branch
选择lisi分支
push到远程库lisi分支, 如何 lisi分支不存在,就自动创建分支lisi
git push -u origin lisi
现在需要在master 合并 lisi 分支,
① git fetch 查看下服务器有哪些分支需要更新,并拉去到本地
② git merge origin/lisi # master 合并远程 origin/lisi 到 master
③ git add . # 把合并后的数据提交到 版本库
④ git commit -m #提交到版本库
⑤ git push -u roigin master:master #把合并后的 master 提交到 远程 origin/master
冲突 同一个文件 同一行 出现文件不一致
① git merge lisi # 合并时候发生冲突
② git diff #查看冲突
③ 手动解决冲突
④ git add .
⑤ git commit -m '解决冲突的地方'
⑥ git push -u origin master:master #推送到远程
查看日志 一行查看
git log --pretty=oneline
git checkout -b dev