一、Git安装和本地用户全局配置
【1】Git的下载与安装
- 进官网下载 https://git-scm.com/download/win 并且安装
- 查看是否安装成功
win + R
进入CMD输入git,出现git命令指南,则安装成功
【2】全局配置本地用户
在git Bash中进行下面配置,下面的账号名字和邮箱都是github的账号所使用的
git config --global user.name "wztlink1013"
git config --global user.email "wztlink1013@163.com"
其中:global表示全局可用,如果要设置局部可用,则只需要删除global即可
【3】验证是否配置成功
git config --global --list
二、利用SSH绑定Git和GitHub
【1】生成SSH密钥
- 输入
ssh-keygen -t rsa
,然后回车三下(有些时候要回车四下) - 然后在用户管理员文件夹下生成两个文件夹id_rsa和id_rsa.pub,将后者文件内容添加到GitHub上即可
【2】GitHub上添加生成的SSH密钥
- 在github上的setting上添加新的ssh即可
【3】验证是否绑定成功
ssh -T git@github.com
- 响应如下内容则证明绑定成功
:::danger 如果报错,则是因为少了一个文件,使用过程中直接点yes。具体参考:解决原理 :::
三、常用命令总结
git clone
本地没有git仓库,也没有git init操作,需要先从GitHub上clone下来-
git clone https://github.com/wztlink1013/datastructure-algorithm.git
对本地文件夹进行一系列更改之后,执行命令:
#查看仓库命令状态
git status
#文件提交到文件缓冲区
git add .
#提交仓库并且添加提交信息
git commmit -m "描述本次修改信息"
#查看修改日志
git log
#再次查看
git status
# 首次推送
git push -u origin master
# 非首次推送
git push origin master
git clone 较大文件失败情况
有的GitHub仓库存在很久,有很多commit历史,特别是曾经的某一次提交带有较大文件的情况,会导致后续clone工程大的问题,解决方案:
--depth 1
depth n参数代表克隆深度,不带该参数则克隆所有历史版本
这种情况是,本地有git仓库,指之前已经进行git init等一系列命令对该文件夹操作过。新建一个例子:
# 初始化本地仓库
git init
# 关联远程仓库
git remote add origin https://github.com/wztlink1013/wztlink1013.github.io.git
# 同步远程仓库和本地仓库
git pull origin master
:::danger 注意:在进行本地仓库和远程仓库的文件交互时,一定要先pull再push,不然会出未知错误。 :::
1、将远程指定分支 拉取到 本地指定分支上:
git pull origin <远程分支名>:<本地分支名>
2、将远程指定分支 拉取到 本地当前分支上:
git pull origin <远程分支名>
3、将与本地当前分支同名的远程分支 拉取到 本地当前分支上(需先关联远程分支,方法见https://www.yuque.com/wztlink1013/blog/fnsge3#KBkAM)
git pull
在克隆远程项目的时候,本地分支会自动与远程仓库建立追踪关系,可以使用默认的origin来替代远程仓库名,
所以,我常用的命令就是 git pull origin <远程仓库名>,操作简单,安全可控。
[
](https://blog.51cto.com/u_15262460/2883040)
git push
1、将本地当前分支 推送到 远程指定分支上(注意:pull是远程在前本地在后,push相反):
git push origin <本地分支名>:<远程分支名>
2、将本地当前分支 推送到 与本地当前分支同名的远程分支上(注意:pull是远程在前本地在后,push相反):
git push origin <本地分支名>
3、将本地当前分支 推送到 与本地当前分支同名的远程分支上(需先关联远程分支,方法见https://www.yuque.com/wztlink1013/blog/fnsge3#KBkAM)
git push
同样的,推荐使用第2种方式,git push origin <远程同名分支名>
git push -u
将本地分支与远程同名分支相关联
git push --set-upstream origin <本地分支名>
简写方式:
git push -u origin <本地分支名>
git push -f
:::danger 报错信息 :::
$ git push origin master
To https://github.com/wztlink1013/website-source.git
! [rejected] master -> master (fetch first)
error: failed to push some refs to 'https://github.com/wztlink1013/website-source.git'
hint: Updates were rejected because the remote contains work that you do
hint: not have locally. This is usually caused by another repository pushing
hint: to the same ref. You may want to first integrate the remote changes
hint: (e.g., 'git pull ...') before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.
分析并解决问题 :::success 强制性push :::
$ git push -f origin master
branch和checkout
# 创建并切换新的分支
git branch -b 分支名
# 查看本地所有分支
git branch
# 切换到指定分支
git checkout 指定分支名
# 四部曲
git status
git add .
git commit -m "push description infomation"
git push origin 分支名
git reset —hard
回退指定历史命令
git reset --hard 9fba643590aeb5889c84029585848b93c3e64e5d
文件夹相关命令
复制文件夹
cp -r ./js/ ./backup/
移动文件夹
mv visualization/ -f .github_pages/
删除文件夹
rm -r .git