git的正常使用
- 查看状态
git status
查看文件状态
- 添加/恢复
git add
添加到暂存区:将工作区的“新建/修改”添加到暂存区
git rm --cached
恢复,不放到暂存区,上一步的撤销
- 提交到本地库
将暂存区的内容提交到本地库
git commit -m '提交说明信息'
补充: 网站上的提交时间是依据我们执行完commit后的时间。
若只是单分支,这些就可以正常使用,可在实际工作中,每个人都有一条分支,我们要去查看整个团队中是否有人已上传了自己的代码
- 更新本地分支代码
git fetch(推荐使用)/git pull
这时会出现提示内容,我们应该先去查看两个分支的更该是否有冲突的地方,有就得先处理冲突。然后只需要输入:q
就可以退出。
- 将本地代码合并到远程分支
git merge origin/(远程分支名)
因为此时本地分支中的代码已经合并了别人的代码,说明本地代码是最新的,但远程分支不是最新的,所以需要让本地分支跟远程分支合并一下。
同样也会出现提示内容,:q
就能退出
- 提交到远程仓库
git push
版本
- 查看版本历史记录
git log
显示最详细的日志信息: 如果内容太长,需要控制屏幕 空格键: 向下查看、b:向上查看、q:退出查看
git log --oneline
简约的格式显示
- 前进后退版本
git reflog
显示回滚版本步数,HEAD@{回滚对应版本,底层操作需要移动几步}
基于索引值操作[推荐方式]
git reset --hard <局部索引值>
使用一个^(异或) 表示后退一步,n个^表示后退n步
git reset --hard HEAD~n
使用~符号:只能后退;n指定步数,表示后退n步
git add . 和 git add *
-
git add .
会把本地所有untrack的文件都加入暂存区,并且会根据.gitignore做过滤 -
git add *
会忽略.gitignore,把任何文件都加入
为什么推荐使用get fetch的原因
git pull 和 git fetch 区别
git pull(少用)
- 提交 / 拉取
git pull 会把所有的提交自动合并到当前分支当中,没有复查的过程
git pull = git fetch + git merge
可能会产生冲突,需要手动解决 - 远端跟踪分支不同
无法直接对远程跟踪分支操作,必须先切回本地分支然后创建一个新的commit提交 - commitID不同
更新代码时,本地的库中master的commitID发生改变,变成了2
(commmitID 提交时,生成的唯一标识)
git fetch
- 提交 / 拉取
git fetch 只是把拉去的提交存储到本地仓库中,没有合并过程,需要使用merge合并 - 远端跟踪分支不同
能直接更改远端跟踪分支 - commitID不同
更新代码时,本地的库中master的commitID不变,还是等于1