一、git理解
——————————————————————————————————————————————
参考:
1、https://juejin.im/post/5adb1720f265da0b80704fb8
2、https://www.cnblogs.com/tsingke/p/7350490.html
3、https://www.tutorialdocs.com/article/git-basic-command-list.html
4、https://blog.csdn.net/bruce_6/article/details/83615226?utm_medium=distribute.pc_relevant_right.none-task-blog-BlogCommendFromMachineLearnPai2-8.channel_param_right&depth_1-utm_source=distribute.pc_relevant_right.none-task-blog-BlogCommendFromMachineLearnPai2-8.channel_param_right
——————————————————————————————————————————————
工作区(Working Directory):写代码的地方,电脑能看见得,当前所在的。
暂存区(Stage/Index):git add 修改文件存放的地方。git commit 时就是一次性把暂存区所有修改提交到分支。
本地历史仓库(Repository):我们可以把暂存区的内容提交到我们的本地仓库,又名版本库(respository),可将其理解成一个目录,该目录下的所有文件都会被 git 管理起来,每个文件的修改、删除、git 都能跟踪,以便随时追踪历史,和还原。
.git 隐藏目录就是 git 的版本库,里面存了很多东西,最重要的就是 stage(index) 暂存区,还有第一个分支 master,以及指向 master 的 HEAD 指针。
远程仓库(Remote)
二、暂存区
git ls-files 查看暂存区中文件信息
二、参数信息,括号里是简写
--cached (-c) 查看暂存区中文件,git ls-files 命令默认是此命令
--midified (-m)查看修改的文件
--delete (-d)查看删除过的文件
--other (-o)查看没有被git跟踪的文件
--stage (-s) 显示mode以及文件对应的Blob对象,进而我们可以获取暂存区中对应文件里面的内容。
git ls-files -c 或者 git ls-files --cached git ls-files -m
如何查看暂存区文件内容:
首先,我们需要查查bb.txt文件对应的Blob对象,如下:
git ls-files -s -- bb.txt 或者直接
git ls-files -s
然后:
git cat-file -p f39931164f29572386b4d9b97c3d52aec0508e15
三、清除 Untracked files的命令
git清除 Untracked files的命令
git clean -f -d
四、解决冲突
git stash
git pull
git stash pop
当pull出现冲突时,将修改项存入栈中,pull 拉取远程代码到本地,从栈中取出修改项,接下来diff一下此文件看看自动合并的情况,并作出相应修改。
git stash: 备份当前的工作区的内容,从最近的一次提交中读取相关内容,让工作区保证和上次提交的内容一致。同时,将当前的工作区内容保存到Git栈中。
git stash pop从Git栈中读取最近一次保存的内容,恢复工作区的相关内容。由于可能存在多个Stash的内容,所以用栈来管理,pop会从最近的一个stash中读取内容并恢复。
git stash list: 显示Git栈内的所有备份,可以利用这个列表来决定从那个地方恢复。
==git stash clear: ==清空Git栈。此时使用gitg等图形化工具会发现,原来stash的哪些节点都消失了。
一些命令:
场景1:修改密码后,git pull提示认证失败。
在当前代码路径下,进入对应 .git目录,编辑vim config,修改URL中的用户名密码,如果用户名密码中有@符号,要替换为%40.例如,884101054@qq.com要换成884101054%40qq.com
场景2: 使用git恢复未提交的误删数据 (删除了工程下某些文件,想要恢复,git pull没有用, checkout ,没有用时)
git reflog /git log -g
git reset --hard b40839f