git的使用
git使用的配置
- 本地用户的基本配置
git config --global user.name 提交人姓名 //配置你的用户名
git config --global user.email 提交人邮箱 //配置你的邮箱
git config --global --list; //查看配置
//如果进行其他命令又不知道,可以查看帮助↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓
git help //可以查看git的命令及作用的简单描述
- 更改仓库的默认编辑器,由于默认的是vim编辑器,你可以用自己的编辑器编辑修改
git config --global core.editor notepad++ //改行命令的意义在于可以在提交信息的时候用notepad++编辑器编辑提交信息
git config --global core.editor "\"编辑器所在的位置""
- git仓库的初始化
git init //初始化一个空仓库
- 查看文件的状态
git status
git commit -a
git commit -a可以不用git add . 就直接进行提交到工作目录中
-
查看分支文件的差异
-
可以用
git log
查看提交的差异git log dev ^master //查看dev中有而master的分支不存在的 git log master ^dev //查看主分支有的dev分支下没有的
-
查看都多提交了那些内容
git log master..dev //查看dev比master多出了那些内容 git log dev..master //功能类似上边的
-
-
git diff
命令用法-
不加任何参数
git diff //这里是指工作目录(working tree)和暂存区的差异
-
git diff --cached
和git diff --staged
git diff --cached/--staged //查看已经暂存起来的文件(staged)和上次提交时的快照之间(HEAD)的差异
-
-
git的文件的追加到暂存区
git add 文件名 //将文件追加到暂存区
git add . //将所有的文件加到暂存区
- 暂存区的文件给删除
git rm --cached 文件名 //将文件从暂存区删除
- 将文件删除
git rm 文件名 //将文件删除
-
git checkout
-
放弃文件的修改
git checkout -- 文件名 //放弃修改某文件夹
文件已经添加到暂存区,否则没意义,这时候回复的是暂存区和命令执行当时的不同的修改取消
如果加到了暂存区,并且提交了的情况,会把之前的和提交不同的给取消掉
-
还可以做到切换工作区,比如工作的分支
git checkout 分支名 //切换工作区(分支)
-
-
回退到某个版本
git reset --hard ID的值 //ID为版本特有的hash值
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-MLbNnxrY-1591318627542)(C:\Users\yangbaobao\Desktop\JS高级课件\06-04git\捕获.JPG)]
- 仓库分支的查看
git branch
- 新建一个git 分支
git branch xxxx;//xxxx是分支名
- 分支的合并
需要在合并到哪里,就要在哪个分支,然后执行下述命令
git merge xxxx;//xxxx为需要合并的分支
- 分支的删除
git branch -d 分支名称;//分支的删除,但是合并后才允许删除
git branch -D 分支名称;//强制删除该分支。
- 删除远程仓库的分支
git push origin --delete 远程仓库分支的名字;//origin为远程仓库的地址或者仓库的别名
git stash用法
应用场景:
- 我不想把我的修改提交上去,但是我又想保存自己的修改,以保证自己的进度
- 我们错误的在分支上进行了改动,想保存修改并且保存到应该进行的分支
-
git stash
能够将所有未提交的修改(工作区和暂存区)保存至堆栈中,用于后续恢复当前工作目录。
-
git stash save
作用等同于git stash,区别是可以加一些注释
-
git stash list
查看当前stash中的内容
-
git stash pop
将当前stash中的内容弹出,并应用到当前分支对应的工作目录上。
-
git stash clear
清除堆栈中的所有内容
-
git stash show
查看堆栈中最新保存的stash和当前目录的差异。
git stash branch
从最新的stash创建分支。
当堆栈中已经储藏修改了,我们没有理会,继续在当前分支进行开发,后续想将stash中的内容也恢复到当前工作目录时,如果是对同一个文件都进行了修改(任何修改),那么可能会发生冲突,恢复失败,这里通过创建新的分支来解决。可以用于解决stash中的内容和当前目录的内容发生冲突的情景。发生冲突时,需手动解决冲突。
git远程仓库的pull push
我们在创建仓库时候,需要关联仓库,要么从远程仓库进行克隆、要么从本地仓库推送到一个新的仓库。
-
克隆仓库
git clone 主机仓库地址
使用完成后自动记录当前的远程主机地址和主分支默认别名是
origin
,如果只有一个远程仓库,当你推送到远程仓库的z主分支时候可以直接用git push origin master
-
git pull
当我们不知道别人是否更改了远程仓库的代码,我们需要先pull,查看是否有代码的冲突,如果有,我们需要先手动解决冲突,然后才能push到远程仓库。
-
git push 仓库地址 分支
我们推送时候我们需要把远程仓库以及分支给明确写出。如果使用默认的,建议只连接一个远程仓库时,且是主分支只是用
git push
其余需要全程。
远程仓库的名字如果太长我们可以用别用代替。
git remote add origin 主机仓库地址
//我们用origin代替主机仓库的地址,用origin当做仓库别名
-
git remote rm origin
我们不再想要连接远程仓库的时候,我们需要执行
git remote rm 远程仓库名
拓展
- 重命名本地分支
git branch -m|-M oldbranch newbranch
//重命名分支,如果newbranch名字已经存在,则需要使用-M强制重命名,否则,使用-m进行重命名。
- 删除远程旧名称分支并且push新名称分支
git push origin :old-name new-name
- 关联新名称的本地分支和远程分支
git push origin -u new-name
- 修改远程仓库地址
git remote set-url origin [url]
//[url]为新的远程仓库的地址
我们也可以先删除远程仓库连接,再添加
git remote rm [远程仓库主机名]
git remote add [别名] [新的远程仓库主机名]