尼采般地抒情

尼采般地抒情

尼采般地抒情

音乐盒

站点信息

文章总数目: 316
已运行时间: 1570

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

Git的下载与安装


全局配置本地用户

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


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


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

验证是否配置成功

git config --global --list

二、SSH绑定Git和GitHub

生成SSH密钥

  1. 输入以下命令,然后回车三下 (有些时候要回车四下)
ssh-keygen -t rsa
  1. 然后用户管理员文件夹下会生成下面两个文件id_rsa和id_rsa.pub

GitHub上添加生成的SSH密钥

  • 将上述id_rsa.pub的文件内容添加到GitHub上的ssh即可

验证是否绑定成功

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

The authenticity of host 'github.com (xx.xxx.xxx.xx)' can't be established.

出现该错误,原因为少了一个known_hosts文件,解决方法,直接键入yes,再回车。

三、常用命令总结

git clone

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

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

克隆仓库指定commit深度

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

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

git clone git@github.com:wztlink1013/web-learn-notes.git --depth 1

克隆指定分支下来

git clone -b 指定分支名 git@github.com:wztlink1013/wztlink1013.github.io.git

常规提交代码

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

# 查看仓库命令状态
git status 
# 文件提交到文件缓冲区
git add .   
# 提交仓库并且添加提交信息
git commmit -m "描述本次修改信息"    
# 查看修改日志
git log  
# 再次查看
git status   

首次推送

git push -u origin master

非首次推送

git push origin master

git pull

使用git pull情况是,本地有git仓库,指之前已经进行git init等一系列命令对该文件夹操作过。比如下面的新建一个例子:

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

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

  1. 将远程指定分支 拉取到 本地指定分支上:(当前分支也会被改变,可能需要先创建一个该名字的分支??)
git pull origin <远程分支名>:<本地分支名>
  1. 将远程指定分支 拉取到 本地当前分支上:
git pull origin <远程分支名>
  1. 将与本地当前分支同名的远程分支 拉取到 本地当前分支上(需先关联远程分支,方法见上)
git pull

在克隆远程项目的时候,本地分支会自动与远程仓库建立追踪关系,可以使用默认的origin来替代远程仓库名,

所以,常用的命令就是 git pull origin <远程仓库名>,操作简单,安全可控。

git push

  1. 将本地当前分支 推送到 远程指定分支上(注意:pull是远程在前本地在后,push相反):
git push origin <本地分支名>:<远程分支名>
  1. 将本地当前分支 推送到 与本地当前分支同名的远程分支上(注意:pull是远程在前本地在后,push相反):
git push origin <本地分支名>
  1. 将本地当前分支 推送到 与本地当前分支同名的远程分支上(需先关联远程分支,见上)
git push

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

  1. git push -u

将本地分支与远程同名分支相关联(多用于首次push)

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

简写方式:

git push -u origin <本地分支名>
  1. git push -f
$ 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.
  • 解决:强制性push
git push -f origin master

git branch/checkout

常规使用

# 从当前分支创建并切换新的分支
git checkout -b 分支名  
# 查看本地所有分支
git branch 
# 切换到指定分支
git checkout 指定分支名

从远程拉取指定分支并切换

# 方法1
git fetch origin dev-2.0-wzt:dev-2.0-wzt

方法2

git fetch
git checkout -b dev-2.0-wzt origin/dev-2.0-wzt

删除指定分支

git branch --delete dev-2.0-wzt1
# error: The branch 'dev-2.0-wzt1' is not fully merged.
# If you are sure you want to delete 
# it, run 'git branch -D dev-2.0-wzt1'.
git branch -D dev-2.0-wzt1  
# Deleted branch dev-2.0-wzt1 (was 63e7215).

git reset

回退指定历史命令

git reset --hard 9fba643590aeb5889c84029585848b93c3e64e5d

本地回退到指定commit之后,如果需要同步到远程分支之后,可以进行以下操作:

  1. 在GitHub上复制一个备份分支(因为强制命令会使得新提交的commit失效)
  2. 使用强制push命令
git push origin -f main

git commit

将当前修改内容提交新分支

# 步骤1:在当前分支上的修改暂存起来
git stash
# 步骤2:暂存修改后,在本地新建分支(new_branch为新分支的名字)
git checkout -b new_branch
# 步骤3:将暂存的修改放到新建分支中
git stash pop

后续就是add -> push等操作了

四丶其他

[rejected] (would clobber existing tag)

vscode报错, 本地代码tags没有同步, 强制刷新本地标签

git fetch --tags -f

评论区