欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  科技

Git使用笔记

程序员文章站 2022-10-29 20:50:29
简介 定义 Git,最先进的分布式版本控制系统之一,最初是由Linux之父Linus为了更好管理开源Linux系统而开发的一个软件; 下载:https://git scm.com/downloads 安装 Linux: Windows、macOS通过官网下载安装包后进行安装即可; 设置 安装完成后, ......

简介

  • 定义
    git,最先进的分布式版本控制系统之一,最初是由linux之父linus为了更好管理开源linux系统而开发的一个软件;

  • 下载:https://git-scm.com/downloads

  • 安装
    • linux:sudo apt-get install git
    • windows、macos通过官网下载安装包后进行安装即可;
  • 设置

    安装完成后,需要进行以下设置:

    $ git config --global user.name "user name"
    $ git config --global user.email "example@email.com"
    # 可选,让git命令行显示颜色
    $ git config --global color.ui true

版本库创建及管理

  • 如何创建版本库
  1. 先创建一个空文件夹,windows下不再介绍,linux以及macos下可通过$ mkdir gitlearn命令创建;
  2. 通过$ git init将刚才创建的目录变为可管理的仓库;

Git使用笔记

  • 如何将文件添加到版本库
  1. 在刚才创建的空文件夹中,添加你自己的文件,以readme.md为例;
  2. git add命令将文件添加到仓库;
$ git add readme.md
  1. git commit将文件提交到仓库;
$ git commit -m "this is a readme.md file."
  • 如何查看仓库修改的内容
  1. git status查看仓库当前状态;

  2. git diff filename查看文件具体修改的内容;

$ git diff readme.txt
  1. git log查看最近到最远的提交日志
$ git log --pretty=oneline
  1. 回退之前的版本,先用git log查看提交历史,以确定commit_id,回退后,当想要重返未来版本时,用git reflog查看命令历史,从而确定重返版本commit_id,head指向当前版本,为了在版本的历史之间穿梭,使用命令git resrt --hard commit_id
$ git reset --hard head^
  1. 直接丢弃工作区的某文件修改内容时,使用命令git checkout -- filename
$ git checkout -- readme.md
  1. 删除文件,先在工作区将文件删除后,然后使用命令git rm将版本库中文件删除,然后通过git commit提交
$ git rm readme.md
$ git commit -m "delete readme.md"

远程仓库

  • 为了将本地git和远程github相连接,可以进行如下操作:

    • 确定.ssh目录下是否存在文件id_rsaid_rsa.pub,有则复制id_rsa.pub中内容明将其添加到github中的ssh key,建立两者联系,可以在本地管理,
    • 不存在则通过如下命令生成;
    $ ssh-keygen -t rsa -c "example@email.com"
  • 如何添加远程仓库

    • 在本地通过如下命令建立本地仓库与远程仓库进行管理,然后就可以将本地仓库内容推送到github仓库;
    $ git remote add origin git@github.com:cunyu1943/gitlearn.git
    • 从远程仓库克隆岛本地:
    $ git clone https://github.com/cunyu1943/the_journey_to_nlp.git
  • 将本地仓库内容推送到远程仓库;

# 第一次推送
$ git push -u origin master
# 之后的推送
$ git push origin master

分支管理

  • 创建并切换分支
$ git switch -c dev
# 等价命令
$ git checkout -b dev
# 等价命令
$ git branch dev
$ git checkout dev
  • 查看当前分支,前边标有\(*\)代表当前分支,切换回\(master\)分支;
$ git branch
$ git checkout/switch master
  • \(dev\)分支合并到\(master\)分支;
$ git merge dev
  • 删除分支;
$ git branch -d dev
  • 强制删除未合并分支;
$ git branch -d dev
  • 查看分支合并图
$ git log --graph

多人协作

  • 查看远程库信息:git remote -v

  • 本地新建分支若不推送到远程,则对其他人不可见;

  • 本地推送到远程库,git push origin branch-name,若推送失败,则用git pull抓取远程新提交;

$ git push origin master
# 若推送失败,则先执行如下命令
$ git pull
  • 本地创建和远程分支对应分支,git checkout -b branch-name origin/branch-name
$ git checkout -b dev origin/dev
  • 建立本地分支和远程分支的关联,git branch --set-upstream branch-name origin/branch-name
$ git branch --set-upstream dev origin/dev
  • 从远程抓取分支则使用git pull,若有冲突,则先解决处理后再处理;

标签管理

  • 先切换到需要打标签的分支git switch branch-name

  • 打标签并查看;

# 打一个名为"v1.0"的标签
$ git tag v1.0
# 查看所有标签
$ git tag
  • 查看标签信息,git show <tagname>
$ git show v1.0
  • 创建带有说明的标签,用-a打标签名,-m指定说明文字;
$ git tag -a v1.0 -m "version 1.0 released" 132gsfh
  • 删除标签,本地使用git tag -d <tagname>,远程则使用git push origin :refs/tags/<tagname>
# 删除本地标签
$ git tag -d v30.0
# 删除远程标签
$ git push origin :refs/tags/v30.0
  • 将标签推送到远程git push origin <tagname>
# 推送某一标签
$ git push origin v1.0
# 推送所有标签
$ git push origin --tags

建立github和gitee共同远程连接

  • 删除某一关联的远程库,git remote rm <basename>
$ git remote rm origin
  • 关联gitee远程库,git remote add <basename> git@gitee.com:<username>/<basename>.git
$ git remote add gitee git@gitee.com:cunyu1943/notes.git
  • 关联github远程库,git remote add <basename> git@github.com:<username>/<basename>.git
$ git remote add github git@github.com:cunyu1943/notes.git

-推送到gitee和github

# 推送到gitee
$ git push gitee master
# 推送到github
$ git push github master

其他小技巧

  • 忽略特殊文件

    此时需要编写.gitignore文件,文件要放到版本库中,且可以对.gitignore进行版本管理;

  • 配置命令别名

# 举例
$ git config --global alias st status
$ git config --global alias checkout co
$ git config --global alias commit cm

欢迎关注微信公众号:村雨1943;创作不易,未经同意,转载请注明出处~