点我下载-->具体操作步骤案例文档
Git
Git是什么?
- 一个代码管理的工具(单人与多人开发)
- 目前世界上最先进的分布式版本控制系统(没有之一)
Git 常用命令
-
初始化一个Git(本地)仓库 (只需初始一次)
git init
-
设置用户名和邮箱 (只需设置一次)
用户名:git config --global user.name 你的用户名
邮箱:git config --global user.email 你的邮箱
-
把工作区的文件添加到暂存区 (需按自己的需求添加N次)
git add 文件名,文件名····
git add * (把当前工作区所有文件添加到暂存区)
git add ./ (把当前工作区所有文件添加到暂存区)
-
把暂存区的文件提交,生成一个版本 (需按自己的需求提交N次)
git commit -m "说明文字"
-
查看用户名或邮箱等一系列设置 (可自行修改,按Q键退出)
git config --list
-
查看文件版本
git log
(查看分支上都有哪些版本)
git log --oneline
(查看分支上的版本,相对简洁) -
查看文件状态
git status
-
查看文件版本id
git reflog
-
回退版本(一旦回退版本,工作区的代码也会相应改变)
git reset --hard HEAD^/commit_id
git reset --hard HEAD^ / HEAD~1
(表示回到上一个版本)
git reset --hard HEAD^^ / HEAD~2
(表示回到上上一个版本,依次类推)
git reset --hard 版本id
(回到指定的版本,一般用这个)
注:本地版本回退之后,远程仓库不回退 -
回到未来版本(需通过git log查看版本id)
git reset --hard 版本id
-
撤回在暂存区的文件
git reset HEAD --
(撤回所有)
git reset HEAD -- 文件名
(撤回指定文件) -
克隆远程仓库的代码到本地仓库(url为远程仓库的地址)
git clone url
注:一般第一次用git clone url
进行拷贝,以后都用git pull
进行拉取 -
从远程仓库拉取代码到本地(url为远程仓库的地址,master为主分支)
git pull url master
注:如果本地仓库与远程仓库同步后,只需输入git pull
就可以直接进行拉取更新代码 -
查看执行 git status 的结果的详细信息
git diff
- 尚未缓存的改动:
git diff
- 查看已缓存的改动:
git diff --cached
- 查看已缓存的与未缓存的所有改动:
git diff HEAD
- 显示摘要而非整个 diff:
git diff --stat
- 尚未缓存的改动:
-
推送本地代码到远程仓库(第一次同步时需输入密码)
git push url master
(url为远程仓库地址)
简便方式:
添加远程仓库:git remote add origin url
(url为远程仓库地址)
查看远程仓库:git remote
如果显示 origin 则说明添加成功,以后再推送代码到远程仓库时,只需输入git push origin master
就可以推送代码。
当使用代码git push -u origin master
时,表示把origin设置为默认主机,则再次推送代码时可简写为git push
注:如果当前分支与多个主机存在追踪关系,则可以使用 -u 选项指定一个默认主机,这样后面就可以不加任何参数使用git push
- 删除设置的origin(origin名称需根据你本地查询出来的名字进行删除)
查询:git remote -v
删除:git remote rm origin
Git 分支命令
注:origin是你的默认仓库地址,你也可以换成你的仓库地址链接
-
查看本地分支
git branch
-
查看远程分支
git branch -r
-
查看所有分支
git branch -a
-
创建本地分支
git branch 分支名
-
创建远程分支
git push --set-upstream origin 分支名
-
切换分支
git checkout 分支名
-
创建并切换分支
git checkout -b 分支名
-
合并分支(合并分支之前需要切换到master分支上,合并完需要push一下)
git merge 分支名
-
删除本地分支
git branch -d 分支名
-
删除远程仓库的分支
git push origin --delete 分支名
-
提交(commit)时不进行eslint校验(不建议使用)
git commit --no-verify -m "描述信息"
-
把本地仓库和远程仓库关联起来(一般不用)
1.需要在我们电脑上生成一个公钥和一个私钥
ssh-keygen -t rsa -C "你的邮箱"
(邮箱必须和Git一致)
(生成后保存在 C:\Users\Administrator.ssh)
2.打开公钥 id_rsa.pub
3.登陆GitHub,添加一个公钥
输入公钥名称
复制id_rsa.pub里面的内容,粘贴到公钥上
添加公钥成功
4.添加成功后,就可以在本地仓库给GitHub进行push或pull
注:如果自己只是简单使用的话,不需要进行这一步操作
在GitHub或码云上下载单个文件或文件夹
一般情况下,在GitHub或者码云中,当我们需要下载项目时,可以点击右边的 Clone or download
按钮,然后用命令 git clone <url>
就能下载整个项目,
但是有时候我们不需要下载整个项目,只是需要下载项目中的某个文件或者文件夹,这时候就要用到下面的两种方法了
注:能用方法一最好用方法一,因为方法二好像是把整个项目下载下来,然后把你需要的文件或者文件夹显示出来,把不需要的隐藏了,所以最好用第一种。
方法一(只能用GitHub下载,不能用码云)
通过 Chrome 插件 GitZip 进行下载
用谷歌浏览器科学上网后,在Chrome应用商店搜索 GitZip for Github 进行安装
GitZip for Github 插件使用方法
GitZip 使用也很简单,首先你需要在Chrome浏览器上打开 GitHub 上的项目页面,其次在需要下载的文件或者文件夹空白处双击鼠标,这时该文件或文件夹前就会出现一个钩,表示已经选择,如图:
当你选中后,同时在浏览器右下角还会出现一个下载按钮,点击下载按钮后,GitZip for Github 会自动向服务器进行请求,将你需要的文件或文件夹进行打包并下载到浏览器的默认下载文件夹处。
不过在这之前,你需要申请一个 API Token
这时你可以点击 GitZip for Github 的图标,按照里面的提示来申请 API。(最好申请Provite的,这样的话权限高)
这里我申请一个Normal的API Token
当然你也可以申请一个Private的API Token
下面演示一下申请方法 :
点击上面的Normal,会出现以下页面,然后你进行关联:
然后输入密码点击提交:
生成后过一会就会返回你的GitHub项目页面,然后你再点击图标的话,输入框里默认有一个API Token
然后你就可以进行下载操作了
下载的时候你最好指定一个下载位置,比如我选择的是桌面,然后他就会把我选择的文件和文件夹打包下载成一个压缩包
至此这种方式就结束了
方法二(GitHub或码云都能用)
使用步骤:
1.先进入你要存放的路径(比如桌面)打开Git Bush Here
在桌面新建一个文件夹:mkdir Test
进入到文件夹里:cd Test
2.初始化本地仓库git init
3.连接远程仓库GitHub项目
git remote add -f origin <url>
我的操作:git remote add -f origin https://gitee.com/gitee_fanjunyang/Code.git
4.开启sparse checkout模式
git config core.sparsecheckout true
//允许克隆子目录
注:Git1.7.0以后加入了Sparse Checkout模式,这使得Check Out指定文件或者文件夹成为可能。
5.设置要克隆的仓库的子目录路径
echo 你项目的子目录名称 >> .git/info/sparse-checkout
//注意别漏掉空格
我的操作:echo Vue_Project >> .git/info/sparse-checkout
(Vue_Project是我需要下载的子目录)
6.下载到本地的分支
git pull origin master
然后你看下你在桌面创建的Test文件夹,里面就有你选中单个下载的那个文件了
异常处理
git推送到远程仓库时提示错误
remote: Incorrect username or password ( access token )
fatal: Authentication failed for 'https://gitee.com/***/***.git/'
解决方法:
清除本地仓库的用户名和密码:git config --system --unset credential.helper
再执行推送,重新输入用户名和密码
当我们对远程仓库里的文件进行了在线的修改,但是没有对本地库进行同步。
这个时候当我们再次用commit想要从本地库提交到远程库中时就会出现push失败的问题,错误信息:
error:failed to push some refs to https://gitee.com/***/***.git/
解决方法:
- 强推(不推荐):
git push -f
- 把远程库同步到本地库:
git pull --rebase origin master
这条指令的意思是把远程库中的更新合并到本地库中,--rebase的作用是取消掉本地库中刚刚的commit,并把他们接到更新后的版本库之中。