使用场景

本地更改文件后推送到远程仓库

  1. #现有在本地仓库里有一个刚新建的文件 newfile.txt
  2. git add newfile.txt #将其加入到本地仓库的暂存区
  3. git commit -m 'I create a new file' #保存本次更改的版本记录(历史消息记录)
  4. git push -u origin master #把本次提交推送到远程仓库origin的master分支

git push 命令提示要先 git pull
则输入命令: git pull origin master
如果 git pull 报错 : git fatal: 拒绝合并无关的历史的错误解决
则执行命令: git pull —allow-unrelated-histories
然后再次 git pull 和 git push

命令分类

从远程仓库获取代码

git clone 克隆

完全拷贝远程的整个仓库
在某个空的目录下,将Github 上的仓库 clone到本地。

  1. git clone https://github.com/MeetXinZhang/BioUtil.git

执行 git clone 命令后本地仓库会默认处于 master 分支下,同时系统会自动将 origin 设置成该远程仓库的标识符。
所以,此时,本地仓库的 master 分支与 Github 端远程仓库(origin)的 master分支在内容上完全相同。

git fetch 拉取

拉取远程仓库变更到本地仓库

  1. git fetch origin #拉取远程仓库(origin)
  2. git fetch origin master #拉取远程仓库(origin)的 master 分支
  3. # git fetch 命令执行完毕之后,还不会立即将下载的文件合并到你当前工作目录里,这就给你了一个选择下一步操作的机会
  4. # 要是想将从远程分支下载的文件更新到你的工作目录里,你需要执行一个“合并(merge)”操作
  5. git merge origin/master # 合并下载好的远程仓库(origin)的 master 分支到本地仓库的当前分支

git pull 拉取并合并

拉取远程仓库变更并合并到本地分支,相当于fetch+merge

  1. git pull # 拉取远程仓库变更并合并到本地分支,这个远程仓库是本地端已经设置好的默认的远程仓库
  2. git pull origin # 拉取远程仓库(origin)变更并合并到本地分支
  3. git pull origin master # 拉取远程仓库(origin)的 master 分支的变更并合并到本地分支
  4. git pull origin master:brantest # 拉取远程仓库(origin)的 master 分支的变更,,与本地的 brantest 分支合并

配置本地用户名密码

  1. git config --global credential.helper store # store选项会把凭证用明文存储在$HOME目录下
  2. #我目前(20220513)的token
  3. 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
  4. #只有在修改远程仓库的时候才会进行凭证验证,比如push
  5. git push # 虽然提示的文字仍然使用的密码,但输入的应该是我们之前创建的access token
  6. # 配置用户名
  7. git config --global user.name "dekeshile"
  8. #配置邮箱
  9. git config --global user.email "171129472@qq.com"
  10. #查看配置
  11. git config --global -l

命令速查

git checkout

  1. 放弃本地仓库更改

如果我们在本地 git 暂存区(即已经git add,但是还没有push到远程仓库)对某个文件做了修改,现在,我们想放弃本地仓库的修改,我们可以使用 git checkout 命令。

  1. git checkout -- haicoder.txt # 放弃本地暂存区 haicoder.txt文件的修改
  2. git checkout . # 放弃本地暂存区所有文件的修改

git config

  1. # 配置用户名
  2. git config --global user.name "dekeshile"
  3. #配置邮箱
  4. git config --global user.email "171129472@qq.com"
  5. #配置凭证(相当于密码)
  6. git config --global credential.helper store # store选项会把凭证用明文存储在$HOME目录下
  7. #查看配置
  8. git config --global -l

概念

Git使用 - 图1

Git 工作区、暂存区和版本库

https://www.runoob.com/git/git-workspace-index-repo.html

  • 工作区:就是你在电脑里能看到的目录。
  • 暂存区:英文叫 stage 或 index。一般存放在 .git 目录下的 index 文件(.git/index)中,所以我们把暂存区有时也叫作索引(index)。
  • 版本库:工作区有一个隐藏目录 .git,这个不算工作区,而是 Git 的版本库。

image.png

  • 图中左侧为工作区,右侧为版本库。在版本库中标记为 “index” 的区域是暂存区(stage/index),标记为 “master” 的是 master 分支所代表的目录树。
  • 图中我们可以看出此时 “HEAD“ 实际是指向 master 分支的一个”指针”。所以图示的命令中出现 HEAD 的地方可以用 master 来替换。
  • 当执行 git checkout . 或者 git checkout — 命令时,会用暂存区全部或指定的文件替换工作区的文件。这个操作很危险,会清除工作区中未添加到暂存区中的改动。

https://blog.csdn.net/ThinkWon/article/details/101450420
Git使用 - 图3

图解git原理的几个关键概念