Git manual
Git安装
- 检查当前电脑是否已安装git, 进入命令行输入如下命令git version,如有没报错,说明已安装,否则没安装。
- windows安装:
- 进入git官网下载你window对应的版本(32位还是64位)git,再一路下一步即可。
- 安装完后,在桌面单击鼠标右键,菜单栏中出现"Git GUI Here"与"Git Bash Here"说明安装成功。
- 进入git官网下载你window对应的版本(32位还是64位)git,再一路下一步即可。
- MacOs安装:
- 同样进入git官网,按照macOs安装方式安装即可。
- 同样进入git官网,按照macOs安装方式安装即可。
Github账号注册
进入到github官网,点击右上角"Sign Up"按钮注册账号,按要求填写好你的登录email, 账号与密码。
仓库概念与创建仓库
- 仓库: 管理项目的目录
- 创建仓库: 登录到github上,点击"Repositories",再点击"New"创建新仓库,填写对应的信息,新仓库创建成功。
将代码上传到github
- 在本地创建一目录,如learnGit02, 初始化本地目录,命令行: git init。
git init
- 新建index.html文件,命令行: git add ., git commit -m 'add index.html file'
git add .
git commit -m 'add index.html file'
- 进入githuh中新创建仓库中,”…or create a new repository on the command line“这项最后两行命令在本地执行。
找到所有操作记录的操作
-
git status: 查看当前项目有那些修改。 输入git status,如出现nothing to commit, 说明我们没做任何修改。
在index.html文件中添加一行: <h3>index.html</h3>,输入: git status
-
git log: 查看当前项目的提交记录
查看某人的提交记录: git log --author="xxx"
配置用户名与email
- git config --global user.name 'xxxx'
- git config --global user.email 'xxxx@qq.com' 验证当前配置: git config --global --list
修改项目中的文件
- 在index.html文件中添加一行“<h3>添加内容</h3>”,保存。
- git add index.html
- git commit -m "index.html add row content";
删除不需要的文件
- 手动删除:
- 新加example.html文件, git add example.html, git commit -m "add example.html file".
- 手动删除example.html文件,git add ., 查看删除状态: git status。
- git commit -m "手动删除example.html",查看删除记录: git log
- 命令行删除:
- 重新添加example.html, git add example.html, git commit -m "重新添加example.html文件"。
- git rm example.html.
- git add ., git commit -m "命令行删除文件"
文件重命名操作
- 手动重命名:
- 重新添加example.html文件
- 手动将example.html文件改为example01.html文件
- git add exmaple01.html, git rm example.html
- git commit -m "手动命名"
- 命令行重命名:
- git mv example01.html example.html, git status
- git commit -m "命令行重命名"
- git mv example01.html example.html, git status
移动文件到其它位置操作
-
移动文件到其它位置
- 新建文件夹home,命令行输入: git mv exmaple.html home
- git commit -m "移动文件example.html到home文件夹"
- 新建文件夹home,命令行输入: git mv exmaple.html home
-
移动文件到其它目录并重命名
- 在根目录下创建demo.html,并提交。
- git mv demo.html home/home.html.
- git commit -m "移动文件demo.html到home文件夹,并命名为home.html"
文件有变化时查看文件前后变化
-
方法1:
- git log --pretty=oneline home/home.html, 复制提交的id。
- git show ac363ff21e93d6d023eee890ae53b7d73d83045b, 可以查看这次提交记录。
- git log --pretty=oneline home/home.html, 复制提交的id。
-
方法2:
- 查看文件具体的修改内容:git log -p home/home.html
- 查看文件具体的修改内容:git log -p home/home.html
操作失误的情况如保实现一键复原
-
方法1:
- 在index.html中做修改,在命令行输入git diff可以查看文件具体修改。
- 查看修改,手动改回原来的内容。
- 在index.html中做修改,在命令行输入git diff可以查看文件具体修改。
-
方法2:
- 在index.html中做修改,在命令行输入git status查看那些文件修改了。
- git checkout -- index.html,可还原修改之前的状态。
- 在index.html中做修改,在命令行输入git status查看那些文件修改了。
不再追踪时如何撤销追踪操作
- 在index.html中修改,再git add index.html,这时无法用checkout来还原。
- git reset HEAD index.html: 对index.html文件取消追踪。
- git checkout -- index.html还原。
回到上一版本或指定版本的操作
- 新建一个versions.html文件,命令行输入: git add versions.html, git commit -m "add versions.html"。
- 将versions.html中"versions 1"改为"versions 2",并输入git add versions.html,git commit -m "updata versions 2",最后将"versions 2"更新到"versions 3", "versions 4", "versions 5"。
- 退回上版本: git reset --hard HEAD^, "^"表示回到上一次版本,"^^"表示回到上两个版本,"^n"回到上n个版本。
- 修改versions.html中"versions 4"改成"versions 5",git add versions.html, git commit -m "update versions 5"。
- 通过git log --pretty=oneline versions.html,获取所有版本记录,指定回退到具本版本: git reset --hard c2c4128, 'c2c4128'为版本id也就是commit id, 可取前7到8位或全部。
将某一文件回到指定版本
- 将versions.html版本由3更新到versions 4,并提交记录,只到提交录为5。
- 在index.html文件中添加一行"<h3>versions 5内容</h3>", 命令行: git add index.html, git commit -m "index.html 添加一行'<h3>versions 5内容</h3>'"。
- 命令行输入: git log,查看所有的提交记录,并复制versions.html想要回到某一提交记录的id.
- 命令行输入: git checkout c2c4128 -- versions.html
修改内容后推送至远程仓库
- 将之前的提交记录推送到远程仓库,命令行输入: git push origin master, 并可在远程仓库查看。
给版本创建一个独特标签,所有版本标签管理操作
-
创建一个"标签"(默认在最近一次提交上创建标签),命令行输入: git tag v1.0.0
查看当前"标签"是否成功, 有两种方法: 1: git log, 2: git tag。 -
在指定的提交记录上创建"标签"。
- 输入git log查看提交记录,并复制指定提交记录的id。
- 输入: git tag v0.5.0 c2c4128f。
- 查看创建"标签": git tag。
-
删除之前创建的"标签": git tag -d v0.5.0
-
将"标签"推送到远程仓库: git push origin v1.0.0
分支操作
几乎所有的版本控制系统都以某种形式支持分支。 使用分支意味着你可以把你的工作从开发主线上分离开来,以免影响开发主线。 在很多版本控制系统中,这是一个略微低效的过程——常常需要完全创建一个源代码目录的副本。对于大项目来说,这样的过程会耗费很多时间。
有人把 Git 的分支模型称为它的“必杀技特性”,也正因为这一特性,使得 Git 从众多版本控制系统中脱颖而出。 为何 Git 的分支模型如此出众呢? Git 处理分支的方式可谓是难以置信的轻量,创建新分支这一操作几乎能在瞬间完成,并且在不同分支之间的切换操作也是一样便捷。 与许多其它版本控制系统不同,Git 鼓励在工作流程中频繁地使用分支与合并,哪怕一天之内进行许多次。 理解和精通这一特性,你便会意识到 Git 是如此的强大而又独特,并且从此真正改变你的开发方式。
分支的创建,切换,删除操作
-
创建分支
-
创建dev分支: git branch dev, 查看当前创建的分支: git branch。
-
创建test分支: git branch test。
-
-
切换分支:
- 切换到dev分支: git checkout dev, 查看到当前分支是否切换成功: git branch。
- 切换到dev分支: git checkout dev, 查看到当前分支是否切换成功: git branch。
-
删除分支(不能删除当前分支): git branch -d dev
-
输入: git branch -d dev (删除不了当前分支)
-
删除test分支: git branch -d test
- 如要删除的分支有commit,使用git branch -d 分支,也是删除不掉了,需要将-d改为D强制删除。
- 切换到test分支: git checkout test, 添加text.html文件, 并commit。
- 将分支换到dev, 输入: git branch -d test,将会报错。
- 强制删除分支: git branch -D test。
-
-
创建分支并切换到新创建的分支:
- 输入: git checkout -b test
- 输入: git checkout -b test
分支合并的操作
-
在当前分支dev上创建index.css, index.js文件,并在index.html引用这俩文件,并输入: git add .; git commit -m "新加index.css, index.js两文件在dev分支上"。
-
切换到master分支; git checkout master
-
合并dev分支: git merge dev
分支合并有冲突时如何正确的合并分支
-
在master分支中index.html中最后一行添加一行"<h3>master分支代码</h3>", 并输入: git add index.html; git commit -m "master分支修改index.html内容"
-
切换到dev分支,在index.html中最后一行添加一行"<h3>dev分支代码</h3>",并输入: git add index.html; git commit -m "dev分支修改index.html内容"。
-
再切回master分支,合并dev分支: git merge dev,冲突报错。
-
冲突处理:
- 方法1解决冲突,输入: git merge --abort(冲突时保留当前分支的代码), 冲突解决。
- 方法2解决冲突, 合并dev分支: git merge dev,报错代码冲突。
- 在index.html中手动删除<<<<<< HEAD, ========, >>>>>>>> dev这些特殊符号,保存你想的内容。 输入: git add index.html, git commit, 可在commit编辑提交说明
- 方法1解决冲突,输入: git merge --abort(冲突时保留当前分支的代码), 冲突解决。
不同人查看版本路线操作
-
查看当前分支提交全部简单信息记录: git log --oneline。
-
查年当前分支版本路线: git log --oneline --graph。
删除不想要的远端分支操作
-
在本地创建并切换到test分支:git branch -b test
-
在远程(github或gitee)上基于master创建两个分支dev_tony, summer两个分支。
-
同步远端分支: git fetch
-
删除远端分支summer(确定要删除的分支已合并,并真正认为不想要了), 输入: git push origin --delete summer
团队合作时,不同人修改不同文件时及推送的操作
-
将分支切换到master分支: git checkout master, 在index.html中添加一行"<h3>master分支最后一行添加的代码</h3>"保存,再输入: git add index.html, git commit -m "在master分支中的index.html最后一行添加的代码"。
-
用别外一账号登录并编辑当前项目, 在example.html文件最后一行添加" <h3>别人添加的内容</h3>",提交并摄像头到远端仓库。
-
再用自己的账号编辑当前项目,输入: git push后报错,因为别人也做了不同文件的修改,因此在推送之前需要先同步远端代码。
-
我们可以用: git pull origin master 或 git fetch origin master; git merge origin/master, 再推送到远端: git push
创建分支并关联远端分支
-
在远端基于master分支创建dev_01分支,并在exmaple.html body中最后一行添加"<h3>远端dev_01分支</h3>"。
-
在本地创建分支dev_01并关联远端分支dev_01, 输入git fetch同歩远端所有分支,输入git branch -av查看本地与远端分支,并复制"remotes/origin/dev_01"。
-
创建分支并关联远端分支,输入: git checkout -b dev_01 remotes/origin/dev_01。
github,gitee拓展(讲解以edge为例)
插件ocotree初装(github可以以树形目录方式查看)
-
打开edge浏览器, 点击右上角的【...】,菜单栏中点击【扩展】,再点击【管理扩展】。
-
进入到【扩展管理】页面,点击【获取Microsoft Edge扩展】。
-
在搜索栏输入ocotree回车, 在搜索结果中点击右边的【获取】,即安装成功。
-
打开github左边有了树形的目录面板。