git常用的基本命令
需知: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 删除的文件名 (同时删除,比较彻底)