需知:git分为暂存区和工作区。暂存区即为.git文件。工作区就是常用的区域
git 的公钥配置:当我们使用https协议进行pull和push时,每次推送都会要求输入git的账户和密码,此方法很繁琐,我们可以使用git SSH传输。
git ssh传输时,要求用户必须有一个git公钥,具体使用方法为:1.ssh -T git@github.com(查看是否有公钥)2.ssh-keygen -t rsa -C "git帐户名" 设置本地公钥(一直enter)
3.设置本地公钥后,可在结果中看到公钥的放置位置,确定位置 4.获取本地公钥 cat /c/Users/Administrator.DESKTOP-LPVJDV9/.ssh/id_rsa.pub
5.前往github中设置里,设置ssh,填写title并将本地公钥粘贴,保存后查看是否设置成功。6.设置成功后即可使用SSH传输方式,不需输入账户密码
注:如果已经在使用https协议拉下来代码了,则 1.git remote -v 查看传输类型 2.git remote rm origin 移除当前的https协议传输类型
3.git remote add origin git@github.com:SmithJackZuo/reactDemo.git 设置git传输协议
4.查看传输协议类型,如果没有设置ssh,则重复上面步骤
1.版本回退
1.通过提交ID 回退
git reset 5609309 --hard
2.通过HEAD 回退
git reset --soft HEAD^ 回退一个版本
^当前分支所指向提交的前一个提交;^^过多自然不太方便,可以使用HEAD~2表示。
--soft 和 --hard的区别
--soft 版本回退会保存当前暂存,版本回退后暂存的内容仍然在新的版本的暂存里。且老版本的修改内容全部都会显示在新版本的暂存里(可以看到新老版本的区别)
--hard 版本回退会直接删掉当前暂存的所有内容,并且在新版本的暂存区内任何老版本的修改内容,删除的比较彻底(无法看到新老版本的区别)
2.查看某个文件的修改记录和具体内容.
记录:git log 文件路径\文件名 或者git log --pretty=oneline 文件路径\文件名。
具体内容:git log -p 文件路径\文件名
git log --online 简洁版log
3.比较上次提交commit和上上次提交
git diff HEAD^ HEAD
4.比较2个分支同一个文件的区别
git diff branch 具体文件路径 git diff master src/project/account/addAccounts/components/addCards.vue
5.从另一分支上拉某个文件的代码至当前分支
git checkout origin/master 文件路径\文件名。
git checkout origin/master src/project/account/transDetail/components/index-view.vue
6.版本回退
1.查看回退版本ID
git log --graph 或者git log --pretty=oneline
2.根据 id 回退到指定的版本
git reset --hard ID
7.版本撤销
git reflog 查看你的每一次命令,查看你的回退版本ID,
git reset --hard ID 回退
8.新建分支
1.git checkout master
2.创建并切换到新分支 git checkout -b panda
git branch可以看到已经在panda分支上
3.更新分支代码并提交
git add *
git commit -m "init panda"
git push origin panda
4.在git代码管理界面经可以看到panda分支了,成功~~
9.提交记录合并(4条)
git rebase -i HEAD~4
10.查看某个节点的提交记录
git show 节点名称 --stat
11.获取某一个分支的单笔提交,并作为一个新的提交引入到你当前分支上。
git cherry-pick 节点名称
12.暂存机制
git stash (暂存) git stash list(暂存列表) git stash apply stash@{0}(应用对应暂存) git stash pop(删除list中的暂存,并应用最新暂存) git stash show stash@{0}(查看对应暂存记录)
13.git log 和 git reflog的区别
git log可以查看所有提交过的版本信息(不包括删除和reset)
git reflog 可以查看所有分支的所有操作记录(包括已经被删除的 commit 记录和 reset 的操作)
例如执行 git reset --hard HEAD~1,退回到上一个版本,用git log则是看不出来被删除的commitid,用git reflog则可以看到被删除的commitid,我们就可以买后悔药,恢复到被删除的那个版本。
14.分支的删除和恢复
git branch -d 分支名 (删除分支) 如果没有合并,则使用 git branch -D 分支名
git branch 原分支名 a12b74f (恢复分支) 恢复的分支ID 一般通过git reflog查看获取 或者删除分支时最后会有提示
15.提交节点的管理
1.调整节点的顺序: git rebase -i 节点ID (确定范围) 进入vim编辑器,进去编辑模式(i),将pick 626dd60 的顺序改变到想要的位置 ESC :wq 注:调整节点可能会导致冲突
2.删除节点 仍然进入vim编辑器, 将想要删除的节点的pick 改为drop ,退出保存.
3.修改提交信息 git commit -m "提交信息".
(1)如果是最近的一次的提交的话,可以随时修改:git commit --amend -m "新提交信息"。
(2)如果想修改以前的提交信息,则仍然使用 git rebase -i 节点ID 进入vim编辑器,将pick 626dd60 的pick 修改为reword ,保存退出后,提示去修改信息名称,然后修改新的即可
总结:节点的操作命令在编辑器中有提示:P R E S F X D 。节点的管理主要通过进入vim编辑器修改节点的pick进行的。具体请看:https://www.softwhy.com/article-8641-1.html
pick:保留该commit(缩写:p)
reword:保留该commit,但我需要修改该commit的注释(缩写:r)
edit:保留该commit, 但我要停下来修改该提交(不仅仅修改注释)(缩写:e)
squash:将该commit和前一个commit合并(缩写:s)
fixup:将该commit和前一个commit合并,但我不要保留该提交的注释信息(缩写:f)
exec:执行shell命令(缩写:x)
drop:我要丢弃该commit(缩写:d)
16.给节点新增标签
git tag 标签名 节点ID (给节点新增一个标签),可以通过标签名查看节点修改记录(git show 标签名)
注:Git中的分支和标签有点类似,都是引用或者说指针
查看所有 标签:git tag ;删除标签:git tag -d tagLearn
17.新建一个文件,并在文件中写入:
echo "我是谁" > render.txt
18.删除暂存区的文件和删除暂存区和工作区的文件
删除暂存区的文件:git rm --cached 删除的文件名 (工作区不受影响)
删除暂存区和工作区的文件:git rm 删除的文件名 (同时删除,比较彻底)