git根本应用
一、git理解
git是一款分布式的版本控制系统 对版本库的治理,版本库就是寄存了多个代码版本,应用时,相当于能够后悔药,能够回退到某个版本 分布式,散布到每个电脑上,都有本人的版本库,能够本地对版本进行治理,无需网络 分布式对应的就是集中式,版本库在地方服务器,版本的治理须要提交到服务器中进行,须要网络
a.git装置
git for windows,下载地址:
https://github.com/git-for-windows/git/releases/latesthttps://git-scm.com/download/win
应用:
git版本查看 git --version
b.git配置
全局配置文件为 C:\Users\uername.gitconfig ,执行任何Git配置命令后文件将主动创立。
配置个人信息命令:
git config --global user.name "jiang"
部分初始化版本库:
git init // 会在以后文件夹目录下,初始化新建一个版本库文件.git// 配置部分版本库个人信息命令 git config --global user.name "jiang"//用sublime关上配置文件查看subl .git/config
c.克隆我的项目
git clone https://gitee.com/lavard/tailwind-css.git// 删除 文件夹rm -rf tailwind-css
二、git罕用操作
1.git操作控制剖析
把文件提交到把版本库:
// 查看生产车间(工作区)状态git status// 从生产车间(工作区)增加到运输车(暂存区)git add a.jsgit add . //提交所有文件// 将运输车(暂存区)所有文件提交到版本库git commit -m 'test commit'// 配置.gitignore疏忽文件*.txt!a.txtvendor/data.json
删除版本库文件:
// 同时删除版本库文件与工作区文件git rm readme.txt// 删除版本库文件的同时,保留工作区文件git rm --cached readme.txt
批改把版本库文件:
git mv msg.js data.jsgit add data.jsgit commit -m 'msg.js to rename data.js'
查看git日志文件:
git log git log -p // 按 q 退出以后日志状态
批改修后一次提交:
git commit --amend// 进入vim编辑器,编辑最初一次提交
治理暂存区中的文件:
// 将文件从暂存区撤销git restore --staged msg.json// 将工作区的文件回退到版本库的最新版本git restore msg.json
git命令别名设置alias:
git config --global alias.a add// 应用时git a msg.json
可间接在 .gitconfig 配置文件中配置:
[alias] a = add . c = commit l = log
系统命令别名设置,在C:\Users\uername.base_prefile文件中配置:
alias gs="git status"alias gc="git commit -m "alias ga="git add ."
在git终端中应用:
gs // 等同于git status
2.git的分支
分支图示:
罕用分支创立与切换:
// 首次commit时,才会创立master分支// 查看所有分支,及以后开发所在分支git branch// 创立新分支git branch bbs// 切换分支git checkout bbs// 创立并切换新分支 git branch bbs + git checkout bbsgit checkout -b bbs
分支合并与删除:
// 在主分支中合并与删除分支// 合并ask分支git merge ask// 查看已合并分支,未合并分支用 --no-mergedgit branch --merged// 删除已合并ask分支 参数 -d 删除未合并分支 参数 -Dgit branch -D ask
分支合并抵触产生,当两分支同时批改的了同一份文件时,在合并的时候,就会呈现分支合并抵触:
解决分支合并抵触:
// 在master 分支中解决// master 分支中有hello.js// 合并ask分支 批改了hello.jsgit merge ask// 合并bbs分支 批改了hello.jsgit merge bbs// 报错 CONFLICT (content): Merge conflict in hello.js// 解决抵触vim hello.js// 将手动解决过后的hello.js,从新提交到master分支// git add hell.js// git commit -m 'branch merge conflict handle success'
git开发,罕用分支模式:
以后分支有文件让如暂存区没有提交时,须要切换分支的,应用长期存储区保留以后分支暂存区状态:
// 将以后分支暂存区状态保留到长期存储区git stash// 查看长期存储区的列表git stash list// 复原以后分支保留的长期暂存区的状态git stash apply // 默认未stash@{0}git stash apply stash@{0}// 删除长期暂存区的状态git stash drop stash@{0}// 复原以后分支保留的长期暂存区的状态,同时删除长期暂存区的状态git stash pop stash@{0}
三、操作git近程
1.git标签
tag标签,对某一个阶段的总结,这个阶段时完结的,绝对稳固的
命令:
// 打标签git tag v1.0// 查看所有标签git tag
git打包分支成zip
// zip 格局 放入hd/文件夹下打包 打包名称 打包分支git archive --format=zip --prefix='hd/' --output master.zip master
git分支合并rebase(replace base)
当在拆散ask分支后,master分支从新提交了文件,再合并分支时,会呈现,合并分支,这里能够应用rebase,将ask分支在master分支的拆散根底点,移到master最新的提交点上,再合并:
图示:
应用:
// 挪动ask分支根底点,在ask分支中操作git rebase master// 再切换到master分支中,合并ask分支git checkout mastergit merge ask
2.代码托管平台
应用github代码托管平台创立我的项目:
选有配置文件时创立我的项目,会有一次初始化提交
3.推送我的项目
再git终端中,生成ssh密钥:
ssh-keygen -t rsa // 始终回车
在C:\Users\uername.ssh文件夹中生成 id_rsa和id_rsa.pub:将公钥id_rsa.pub配置到github上
性能命令应用:
// 克隆我的项目代码到本地git clone git@github.com:3317414758/ts-vue.git// 在本地版本库中编辑、提交// 将本地版本库推送到近程仓库git push
4.本地被动关联近程
// 应用ssh关联近程git remote add origin git@github.com:3317414758/git_test.git// 产看近程git remote -v// 推送到近程git push -u origin master// 删除近程git remote rm origin
5.push应用
// 将以后分支推送到origin主机的对应分支(如果以后分支只有一个追踪分支 ,可省略主机名)git push origin//应用-u选项指定一个默认主机 ,这样当前就能够不加任何参数直播应用git pushgit push -u origin master// 本地ask分支关联近程分支并推送git push --set-upstream origin ask
6.拉取近程分支
将我的项目分支拉去到本地编辑后推送:
// 克隆我的项目,只有master分支git clone git@github.com:3317414758/git_test.git// 拉取ask分支到本地,命名为ask分支git pull origin ask:ask// 将本地分支向对应的近程分支关联并推送 git push --set-upstream origin ask
7.近程分支合并
// 切换到master分支,将master分支更新到最新状态git pull// 切换到ask分支,将ask分支根底点移到master分支最新状态git rebase master// 切换到master分支中,合并ask分支git merge ask// 查看已合并的分支git branch --merged// 将合并后的master分支,推送到近程git pull//
8.删除近程分支
// 实现开发后,删除ask分支git push origin --delete ask// 删除本地分支git branch -d ask
参考文档:https://doc.houdunren.com/git...