一、Git安装和本地用户全局配置

【1】Git的下载与安装

image.png

【2】全局配置本地用户

在git Bash中进行下面配置,下面的账号名字和邮箱都是github的账号所使用的

  1. git config --global user.name "wztlink1013"
  2. git config --global user.email "wztlink1013@163.com"

其中:global表示全局可用,如果要设置局部可用,则只需要删除global即可

【3】验证是否配置成功

  1. git config --global --list

image.png

二、利用SSH绑定Git和GitHub

【1】生成SSH密钥

  1. 输入ssh-keygen -t rsa,然后回车三下 (有些时候要回车四下)
  2. 然后在用户管理员文件夹下生成两个文件夹id_rsa和id_rsa.pub,将后者文件内容添加到GitHub上即可

image.png

【2】GitHub上添加生成的SSH密钥

  • 在github上的setting上添加新的ssh即可

image.png

【3】验证是否绑定成功

  1. ssh -T git@github.com
  • 响应如下内容则证明绑定成功

image.png :::danger 如果报错,则是因为少了一个文件,使用过程中直接点yes。具体参考:解决原理 :::

三、常用命令总结

git clone

本地没有git仓库,也没有git init操作,需要先从GitHub上clone下来-

  1. git clone https://github.com/wztlink1013/datastructure-algorithm.git

image.png

对本地文件夹进行一系列更改之后,执行命令:

  1. #查看仓库命令状态
  2. git status
  3. #文件提交到文件缓冲区
  4. git add .
  5. #提交仓库并且添加提交信息
  6. git commmit -m "描述本次修改信息"
  7. #查看修改日志
  8. git log
  9. #再次查看
  10. git status
  11. # 首次推送
  12. git push -u origin master
  13. # 非首次推送
  14. git push origin master

git clone 较大文件失败情况

有的GitHub仓库存在很久,有很多commit历史,特别是曾经的某一次提交带有较大文件的情况,会导致后续clone工程大的问题,解决方案:

  1. --depth 1

depth n参数代表克隆深度,不带该参数则克隆所有历史版本

  1. 直接克隆某个分支下来
    1. git clone -b backup git@github.com:wztlink1013/wztlink1013.github.io.git

    git pull

这种情况是,本地有git仓库,指之前已经进行git init等一系列命令对该文件夹操作过。新建一个例子:

  1. # 初始化本地仓库
  2. git init
  3. # 关联远程仓库
  4. git remote add origin https://github.com/wztlink1013/wztlink1013.github.io.git
  5. # 同步远程仓库和本地仓库
  6. git pull origin master

:::danger 注意:在进行本地仓库和远程仓库的文件交互时,一定要先pull再push,不然会出未知错误。 :::

1、将远程指定分支 拉取到 本地指定分支上:

  1. git pull origin <远程分支名>:<本地分支名>

2、将远程指定分支 拉取到 本地当前分支上:

  1. git pull origin <远程分支名>

3、将与本地当前分支同名的远程分支 拉取到 本地当前分支上(需先关联远程分支,方法见https://www.yuque.com/wztlink1013/blog/fnsge3#KBkAM)

  1. git pull

在克隆远程项目的时候,本地分支会自动与远程仓库建立追踪关系,可以使用默认的origin来替代远程仓库名,
所以,我常用的命令就是 git pull origin <远程仓库名>,操作简单,安全可控。
[

](https://blog.51cto.com/u_15262460/2883040)

git push

1、将本地当前分支 推送到 远程指定分支上(注意:pull是远程在前本地在后,push相反):

  1. git push origin <本地分支名>:<远程分支名>

2、将本地当前分支 推送到 与本地当前分支同名的远程分支上(注意:pull是远程在前本地在后,push相反):

  1. git push origin <本地分支名>

3、将本地当前分支 推送到 与本地当前分支同名的远程分支上(需先关联远程分支,方法见https://www.yuque.com/wztlink1013/blog/fnsge3#KBkAM)

  1. git push

同样的,推荐使用第2种方式,git push origin <远程同名分支名>

git push -u

将本地分支与远程同名分支相关联

  1. git push --set-upstream origin <本地分支名>

简写方式:

  1. git push -u origin <本地分支名>

git push -f

:::danger 报错信息 :::

  1. $ git push origin master
  2. To https://github.com/wztlink1013/website-source.git
  3. ! [rejected] master -> master (fetch first)
  4. error: failed to push some refs to 'https://github.com/wztlink1013/website-source.git'
  5. hint: Updates were rejected because the remote contains work that you do
  6. hint: not have locally. This is usually caused by another repository pushing
  7. hint: to the same ref. You may want to first integrate the remote changes
  8. hint: (e.g., 'git pull ...') before pushing again.
  9. hint: See the 'Note about fast-forwards' in 'git push --help' for details.

分析并解决问题 :::success 强制性push :::

  1. $ git push -f origin master

branch和checkout

  1. # 创建并切换新的分支
  2. git branch -b 分支名
  3. # 查看本地所有分支
  4. git branch
  5. # 切换到指定分支
  6. git checkout 指定分支名
  7. # 四部曲
  8. git status
  9. git add .
  10. git commit -m "push description infomation"
  11. git push origin 分支名

git reset —hard

回退指定历史命令
image.png

  1. git reset --hard 9fba643590aeb5889c84029585848b93c3e64e5d

文件夹相关命令

  • 复制文件夹

    1. cp -r ./js/ ./backup/
  • 移动文件夹

    1. mv visualization/ -f .github_pages/
  • 删除文件夹

    1. rm -r .git