git笔记:
git config --global user.name "creator" //配置用户名信息
git config --global user.mail "1747842943@qq.com" //配置邮箱信息
git init //先在cmd中切换到目录文件下,然后进行此命令初始化git
git add <文件名> //从工作区提交文件到暂存区
git commit -m "描述信息" //从暂存区提交文件到仓库
git commit -amend //更改最近一次的仓库提交,把最后一次提交的文件修改为暂存区的文件
git status //查看git状态
/*
Changes to be committed:表示已经从工作区add到暂存区的file(文件或文件夹),可以通过 git restore --staged filename 命令将该file从暂存区移出,只有工作区有该文件,该文件就为Untracked files。
Changes not staged for commit:表示工作区,暂时区都存在的file(文件或文件夹),在工作区进行修改或删除,但是没有add到暂存区,可以通过 git add file 命令将变更(修改,删除)的file add到暂存区,此时该file没有Changes not staged for commit状态,也就是Changes not staged for commit将没有改file的记录了。可以通过 git restore file 的命令取消在file在工作区的变更,那么暂存区的file内容还是以前的,并且file在Changes not staged for commi状态下没有记录。
Untracked files:表示只在工作区有的file(文件或文件夹),也就是在暂时区没有该file。
*/
git reset HEAD //拉取最近一次提交到版本库的文件到暂存区 并且该操作不影响工作区
git reset HEAD <文件名> /拉取指定文件名(最新提交的)文件到暂存区
git reset --mixed HEAD~ //1.移动HEAD指针指向,将其指向上一个快照,2.将HEAD移动后回滚到暂存区
git reset --soft HEAD~ //1.移动HEAD指针指向,将其指向上一个快照
git reset --hard HEAD~ //1.移动HEAD指针指向,将其指向上一个快照,2.将HEAD移动后回滚到暂存区,3.将暂存区的文件还原到工作区
git reset 版本ID号 //不仅可以回滚,还可以往前滚
/*
HEAD~表示回滚到上一个快照,HEAD~~表示回滚到两个以前的快照,HEAD~~~~~表示回滚五个快照,HEAD~~~~~还可以表示成HEAD~10
*/
git reflog //查看所有历史commit id
git diff //比较工作区和暂存区工作目录
git diff 快照ID 快照ID //比较两个仓库中的快照
git diff 快照ID //比较工作区和仓库中的快照
git diff --chched 快照ID //比较暂存区和仓库中的快照
git commit -amend
git rm <文件名> //删除工作区和暂存区的文件
git rm -f <文件名> //删除工作区和暂存区的文件,如果两个区域文件不相同需要加上-f强制删除
git rm --cached <文件名> //仅删除暂存区的文件
git mv <旧文件名> <新文件名> //更改文件名,重命名文件,此时工作区和暂存区文件被重命名,仓库文件名保持不变。如需将仓库文件重命名,则需要提交到仓库即可
git branch <分支名> //创建新的分支
git merge <分支名> //合并分支
git branch -d <分支名> //删除分支
git checkout 分支名 //切换分支
git checkout HEAD~ //把HEAD指针指向上一个快照,并把此快照复制到暂存区和工作区
git checkout -- <文件名> //把暂存区的文件覆盖回工作区
/*
git checkout HEAD~ 和 git reset HEAD~ 的区别在于前者只是把头指针指向上一个快照,后者相当于把上一个快照从仓库中删除
*/
git log --decorate --oneline --graph --all //decorate显示分支,oneline简洁显示 ,graph图型化显示,all显示所有分支