git安装
windows上安装
1.官网下载安装包,下一步安装
2.桌面右击,有git bash here就标识安装成功
3.配置git
git config --global user.name '用户名'
git config --global user.email '邮箱'
--global 标识这台机器上的git仓库都会使用这个配置
//如果配置错误的话,在本地凭据管理中删掉git的凭据,重新配置即可
git config --global color.ui true 让Git显示颜色
git只能跟踪文本文件的具体变化
git基础指令
git init 将本地目录变成git管理的仓库,成功后,本地有.git文件生成
git add ‘文件名’ 把修改添加到暂存区
git commit -m ‘提交日志’ 把暂存区的内容提交到本地分支(历史区)上
git cm -m fix:解决冲突 --no-verify 强制commit提交
git status 查看文件状态 查看工作区的文件状态
git log 查看commit日志
git reset --hard HEAD^ 工作区回退到上个版本,并撤销暂存区的修改放到工作区 HEAD表示当前 HEAD^^表示上上个 HEAD~100表示前一百个 已经回退的话,如果再log,就看不到自己的这条commit日志了
git reset --hard commit的id id没有必要写全,写个前几位就可以了
git reflog 记录每次命令 借commitid可以回到未来版本
git diff HEAD – 文件名 查看工作区与版本库的区别
git checkout --文件名 丢弃这个文件当前在工作区的修改
git push -u origin 分支名 推送到远程分支,第一次推送要带上-u,这是关联远程分支和本地分支的
git clone 远程地址 git支持多种协议,其中ssh最快
git branch 查看分支以及所在分支
git checkout 分支名 切换分支
git switch 分支名 切换分支 新的git可以支持此指令
git checkout -b 分支名 以当前分支为基础,创建新的分支
git branch -D 分支名 删除这个分支
git switch -c 分支名 以当前分支为基础,创建新的分支 新的git可以支持此指令
git merge 分支 合并分支到当前分支(快速合并)
git merge --no–ff -m ‘提交信息’ 合并分支到当前分支,创建一个commit信息,并保留分支信息
git branch -D 分支名 删除分支
git log --graph 看到分支合并图
git stash 暂时存储当前的工作区的修改内容
git stash list 查看所有的存储起来的工作区修改内容
git stash apply 恢复之前存储的工作区的修改内容,不删除git stash list中的记录
git stash pop 恢复之前存储的工作区的修改内容,删除git stash list中的记录
git stash apply stash@{2} 恢复之前存储的某个版本的工作区修改内容
git cherry-pick commitid 单独复制某个分支的提交到另一个分支上,生成新的commitid
git remote 查看远程库的信息 远程仓库默认名称是origin
git remote -v 得到抓取和推送的远程仓库的信息
git pull 拉取最新代码
git rebase 将本地没有push的分叉提交历史整理成直线
git rebase i 将本地多次提交合并成一个提交,简化提交历史
git tag 标记名 在当前本地分支上打出一个新的标记
git tag 查看所有本地标记
git tag 标记名 commitid 对这个commitid对应的提交打标记
git tag -a 标记名 -m 打标记的说明
git show 标记名 可查看这个标记的说明
git tag -d 标记名 删除本地标记
git push origin 标记名 推送这个标记到远程
git push origin --tags 一次性推送所有尚未推送到远程的本地分支
git push origin :refs/tags/标记名 删除远程标记
分支合并原理
最开始只有一个分支master ,git 用master指向最新的提交,HEAD指向当前分支master
如果切出一个新的分支dev,新的dev指针就会自动指向master当前的提交,HEAD也会自动指向dev,表示当前的分支在dev上
在dev上修改,dev指针自动指向dev最新的提交,HEAD仍然指向dev分支,而master的指针没有变化
如果把dev合并到master上,就直接将master指向dev最新的提交,HEAD指向master,就完成合并(git merge 快速合并)
如果合并有冲突的话,两个分支上都有最新的提交,如果都改了一个地方,可能会有冲突
用git merge --no–ff -m ‘提交信息’ 禁用快速合并,保留dev的提交日志,以及创建合并日志
忽略特殊文件
在git工作区的根目录下.gitignore文件中,将要忽略的文件写进去,每次提交就会忽略
*.class 排除所有以.class结尾的文件
.* 排除所有以.开头的文件
!wsy.class 不排除wsy.class文件
配置指令别名
git config --global alias.st status 全局git,用st指代status
git config --global alias.unstage ‘reset HEAD’ 用unstage代替reset HEAD
.git/config配置别名存在这个目录下,如果想去掉别名,可以在对应文件中删除
源的配置
npm config set registry 源的地址 切换之前设置源的地址
npm config get registry 获取当前的源