Git入门

文章目录

  • 一、安装
  • 二、使用
    • 1.配置config(第一次初始化)
      • 1.1.设置
      • 1.2.检查是否配置成功:
    • 2.创建仓库
      • 2.1.先在网站创建
      • 2.2.创建本地仓库
        • 2.2.1.先创建一个目录
        • 2.2.2.git化文件夹
    • 3.本地提交
      • 3.1.查看工作区的文件
      • 3.2.add到暂存区
      • 3.3.commit到本地仓库
      • 3.5.删除、移动(重命名)文件
    • 4.分支
      • 4.1.创建、切换、列出、删除分支
      • 4.2.融合分支
    • 5.远程仓库
      • 5.1.创建公钥(第一次初始化)
      • 5.2.git remote
      • 5.3.push
    • 6.下载到本地
      • 6.1.clone
      • 6.2.fetch和merge分支
  • Reference


一、安装

windows
Git入门_第1张图片
具体安装过程中的解释:Windows系统Git安装教程(详解Git安装过程)


linux:

apt-get install git

二、使用

运行Git Bash,语法是linux的终端,lsmkdir之类的。
在这里插入图片描述

1.配置config(第一次初始化)

1.1.设置

比如Gitee码云,你会有两个关键的信息要填写,一个是你的账号名字,一个是你的邮箱。这两个和你使用git来链接到gitee等之上有关。

$ git  config --global  user.name  '注册的用户名';
$ git  config --global  user.email  '注册时候的邮箱';

1.2.检查是否配置成功:

$ git config --list
user.name=Scott Chacon
user.email=[email protected]
color.status=auto
color.branch=auto
color.interactive=auto
color.diff=auto
...

$ git config user.name
Scott Chacon

2.创建仓库

2.1.先在网站创建

git只是个提交工具,将本地仓库的代码提交到远程仓库中。所以你得先在网站上创建一个远程仓库,这让git知道提交到哪里。

Git入门_第2张图片
这个链接就是提交到的远程仓库。

2.2.创建本地仓库

2.2.1.先创建一个目录

mkdir XXX
cd XXX

这就是本地仓库,本地仓库就是个文件夹,将git要提交/下载下来的东西放到这里去。
Git入门_第3张图片

2.2.2.git化文件夹

怎么让这个普通的文件夹,变成git的仓库呢?
用这个命令生成一个.git配置来允许git来管理它,所有 Git 需要的数据和资源都存放在这个目录中。

$ git init

Git入门_第4张图片

3.本地提交

Git入门_第5张图片

3.1.查看工作区的文件

工作区文件就是就是工作目录(.git的父级目录)下除了.git的文件。

比如,我在文件夹下创建了个click.py或者将别的地方的click.py移动到这里。
Git入门_第6张图片

$ git status

这条命令显示还没有提交到缓存区的工作区的文件,用来查看是否还有文件未提交。
Git入门_第7张图片

3.2.add到暂存区

$ git add 'click3.py'

注:使用git add -Agit add ..是说本目录下的全部文件)可以提交当前仓库的所有改动。

对应git rm --cached xxx取消放入暂存区。

3.3.commit到本地仓库

将缓存区里的文件都commit到本地仓库.git中。

PS:为什么要提交?这个文件夹里不是有吗?
本地仓库又名版本库,提交是让Git来管理的意思,在.git的里面的信息变动。提交后的文件被Git管理起来,对文件的修改、删除,Git都能跟踪,可以比较不同、可以还原。

$ git commit -m "备注信息"

在这里插入图片描述

可以使用git log来查看提交记录。
Git入门_第8张图片

3.5.删除、移动(重命名)文件

如果只是简单地从工作目录中手工删除rm xxx文件,运行 git status 时就会在 Changes not staged for commit的提示。因为你没有告诉git你的变动,git本地仓库中还保留着该文件。

  1. 【删除git本地仓库中,并删除工作区中】
git rm xxx
  1. 【删除git本地仓库中没有,只是提交到暂存区的,并删除工作区的】
git rm -f xxx

PS:如果git本地仓库中有,也提交到暂存区的。那么删除后,暂存区中的和本地仓库中的都没得。

  1. 【把文件从暂存区域移除,但仍然希望保留在当前工作目录中:就是取消放入暂存区】
git rm --cached xxx

对应的,用git add xxx再添加到暂存区

  1. 【暂存区和本地仓库中都没有的:一般是新建在工作区的,才可以直接删除】
rm xxx

4.分支

Git 分支管理

4.1.创建、切换、列出、删除分支

  1. 【创建分支命令】
git branch 分支名字

创建分支的效果相当于虚拟机的快照。
PS:注意是对当前的 commit到本地仓库中的 的文件进行镜像。

  1. 【切换到某分支】
git checkout 分支名字

当你切换到某分支时,工作目录下的文件就是那个分支 commit到本地仓库中的 的文件。

  1. 【创建并切换到某分支】
git checkout -b 分支名字
  1. 【列出分支】
git branch

在这里插入图片描述
在路径后面的就是表示当前分支。
git branch列出的分支前带*号的表示当前分支。

  1. 【删除分支】
git branch -d 分支名字(同当前分支一样,即merge过的)
git branch -D 分支名字(同当前分支不一样,强制删除)

4.2.融合分支

git merge 分支名字

将某分支 合并到当前分支 中去。

融合效果:以某分支为主,而不是当前分支!

  • 某分支中有的,当前分支中没有:则添加到当前分支。
  • √某分支中没有的,当前分支中有:则删除当前分支中的。
  • 某分支中有的,当前分支中没有:如无不同,则无事。如有不同,则冲突。

使用git diff查看冲突之处。会用-+和红绿颜色标识。

Git入门_第9张图片

5.远程仓库

5.1.创建公钥(第一次初始化)

ssh-keygen -t rsa -C 'your email'

接着按3个回车就行
Git入门_第10张图片
可以看到公钥id_rsa(私有秘钥)和id_rsa.pub(公有密钥)。

Git入门_第11张图片
打开id_rsa.pub(公有密钥),复制里面的内容。

Git入门_第12张图片
标题随便起,只是用于区分而已,如同图片中的Foast
将复制的公钥内容粘贴在公钥中,确定就ok。

5.2.git remote

  1. 【将本地仓库与远端仓库建立一个链接】
git remote add 给远程仓库的命名 远程仓库的地址

给远程仓库的命名不要重复。因为可能需要本地仓库会推送到多个远程仓库。

e.g.上传到多个远程仓库的例子:Alpha和Beta就是别名不要重复的意思,要不然push不知道push到哪个远程仓库。

$ git remote add Alpha your_first_git_address	# 将第一个git address命名为Alpha
$ git push -u Alpha master
$ git remote add Beta your_second_git_address	# 将第二个git address命名为Beta
$ git push -u Beta master
  1. 【要查看当前配置有哪些远程仓库,可以用命令】
# -v表示显示详细参数
git remote [-v]

e.g.

$ git remote
origin
$ git remote -v
origin    [email protected]:tianqixin/runoob-git-test.git (fetch)
origin    [email protected]:tianqixin/runoob-git-test.git (push)
  1. 【删除与某个远程仓库的链接】
git remote rm 远程仓库别名

5.3.push

  1. 【将某分支指定推送】
git push 给远程仓库的命名 分支

本地的分支推送到远程仓库

  1. 【将当前分支指定推送】
git push 给远程仓库的命名

当前分支推送到远程仓库

  1. 【将某分支指定推送并默认化】
git push -u 给远程仓库的命名 分支

本地的分支推送到远程仓库,同时指定远程仓库默认的远程仓库,后面就可以不加任何参数使用git push了。

  1. 【将当前分支推送到默认远程仓库】
git push

只有当默认指定远程仓库后,才能使用!

6.下载到本地

6.1.clone

通过HTTPS协议克隆

git clone https://gitee.com/xxx.git

通过SSH协议克隆

git clone [email protected]:xxx.git

例:不用特地创建一个文件夹了,clone下来默认直接以远程仓库名为名创建一个文件夹。
Git入门_第13张图片
Git入门_第14张图片

6.2.fetch和merge分支

  1. fetch
git fetch 远程仓库别名 远程仓库的远程分支

结果是在本地仓库创建一个本地分支远程仓库别名/远程仓库的远程分支中。但并不会在git branch中显示。
e.g.

$ git fetch origin master
 * branch            master     -> FETCH_HEAD
   d48f66c..ee96b01  master     -> origin/master

# 但并不会在`git branch`中显示。
$ git branch
* master
  1. merge
git merge 远程仓库别名/远程仓库的远程分支

合并名为远程仓库别名/远程仓库的远程分支的分支到当前所在分支。

e.g.

$ git merge origin/master

Reference

Git使用教程:最详细、最傻瓜、最浅显、真正手把手教!

你可能感兴趣的:(Tips)