git restore --staged readme.txt
撤销在暂存区提交的文件 将文件从暂存区撤回工作区
git add readme.txt
将文件提交到暂存区
git restore
将在工作区的文件撤销更改 将一个文件恢复到暂存区里的内容
git diff XX:
查看XX文件相对于暂存区修改了哪些内容 比较的是已经修改的工作区和还没add的暂存区
已写入暂存区和已经被修改但未写入暂存区的区别
git add
把文件添加进去,实际上就是把文件修改添加到暂存区;
git commit
提交更改,实际上就是把暂存区的所有内容提交到当前分支。
想将修改提交到master中一定要先git add
到暂存区中,再git commit
到master分支。
add放到暂存区,add commit放到分支树上
git rm –cached XX:将文件从仓库索引目录中删掉 同restore
“git rm –cached”、“git restore –staged”和“git reset”之间有什么区别 专业解释
git rm –cached xxx :从暂存区里移除文件,但是不删除工作区的文件。即取消跟踪这个文件。
git reset HEAD – xxx:将 xxx 文件,最后一次提交(HEAD指针的位置)的版本,放入暂存区。
都可以用来取消当前改动的暂存,但 git rm –cached xxx 会取消跟踪文件,而 git reset HEAD – xxx 不会。
yz说rm对于当前文件不一定管理,可以把它从管理列表中删除出来,restore还需要管理此文件,只是从暂存区拿出来
git log –pretty=oneline改动变成了一行
回滚不删掉
git checkout — XX或git restore XX:将XX文件尚未加入暂存区的修改全部撤销 还没add之前删掉
git restore将工作区的最新修改撤回到暂存区的版本 修改可以回滚 删了也可以回滚
git restore–staged 删掉暂存区的修改
如果删了本地的文件也要add和commit到工作区的诶
rm .. -r
rm .. -rf多加了权限,才允许删掉
从远程下载仓库下来,没有reflog,只有log的日志
暂存区和分支是独立的,不管是dev还是master分支,都只占用同一个暂存区
commit的时候会看你当前在哪个分支,然后把暂存区的内容加到那个分支的后面
切换分支是不会有多个暂存区的,不管在哪个分支都共用一个暂存区和工作目录
fastforward是快速合并模式 直接将master分支的头结点指向dev分支 没有复制 只是改了引用
如果想要强行复制一遍,就加一个-noff
自动合并失败发生冲突,手动解决然后结果持久化, both modified然后vim看一下
<<<<[HTML_REMOVED]>>>>>>
自己改一下,然后status add commit 新版本处理冲突接在 commit的最后一次分支上,master后面
push pull add commit
git push是将当前分支推到云端,在哪个分支就推哪个
如果当前分支没有upstream云端分支,需要在云端创建一个与其对应
如果云端没有分支,创建一个 git push –set-upstream origin branch_name 而且也推送了(push)
去其他分支才能删除本分支
怎么把云端分支同步到本地,创建一个相同的分支在本地,然后git branch –set-upstream-to=origin/branch_name1 branch_name2绑定了,然后git pull一下
pull 1将云端的分支拿下来 2还要merge一遍 将远程分支合并到当前分支
git pull origin dev5将云端分支合并到本地的dev分支
当你写代码突然服务器崩了,怎样保存已写代码,可以把工作区和暂存区都放到栈里(存储历史所有没有持久化的修改)
工作区和暂存区都有修改内容,服务器突然挂掉,想修改不想提交,就直接git stash 然后list可以看所有内容