天天看点

Git快速入门Git

Git

1. Git简介

Git是分布式版本控制系统(distributed version control system,简称DVCS),分为本地仓库和远程仓库

2. Git工作流程

clone与pull的区别

  1. clone操作是一个从无到有的克隆操作(只执行一次)。因此不需要本地进行

    git init

    初始化
  2. git pull是拉取远程分支更新到本地仓库的操作(要执行很多次)。事实上,git pull是相当于从远程仓库获取最新版本,然后再与本地分支merge(合并)。

git init

把当前目录变成Git可以管理的仓库

git add

把文件添加到仓库

git add .

添加文件下所有文件及文件夹

git commit -m "comment"

把文件提交到仓库

为什么Git添加文件需要

add

commit

一共两步呢?因为

commit

可以一次提交很多文件,所以你可以多次

add

不同的文件,比如:

$ git add file1.txt

$ git add file2.txt file3.txt

$ git commit -m "add 3 files."

git status

查看仓库当前的状态

git diff

查看修改之后的不同(difference)

版本回退

穿梭前,用

git log --pretty=oneline

可以查看提交历史,以便确定要回退到哪个版本。

HEAD

指向的版本就是当前版本,因此,Git允许我们在版本的历史之间穿梭,使用命令

git reset --hard commit_id

要重返未来,用

git reflog

查看命令历史,以便确定要回到未来的哪个版本。

工作区和版本库

工作区:

git init

把当前目录变成工作区

版本库:工作区的隐藏目录

.git

,是Git的版本库。

Git的版本库里存了很多东西,其中最重要的就是称为stage(或者叫index)的暂存区,还有Git为我们自动创建的第一个分支

master

,以及指向

master

的一个指针叫

HEAD

第一步是用

git add

把文件添加进去,实际上就是把文件修改添加到暂存区;

第二步是用

git commit

提交更改,实际上就是把暂存区的所有内容提交到当前分支。

撤销修改

场景1:当你改乱了工作区某个文件的内容,想直接丢弃工作区的修改时,用命令

git restore <file>

场景2:当你不但改乱了工作区某个文件的内容,还添加到了暂存区时,想丢弃修改,分两步,第一步用命令

git restore --staged <file>

,就回到了场景1,第二步按场景1操作。

场景3:已经提交了不合适的修改到版本库时,想要撤销本次提交,参考版本回退一节,不过前提是没有推送到远程库。

删除文件

rm file

现在你有两个选择,一是确实要从版本库中删除该文件,那就用命令

git rm file

删掉,并且

git commit

另一种情况是删错了,因为版本库里还有呢,所以可以很轻松地把误删的文件恢复到最新版本:

"git restore <file>

添加远程库

第1步:创建SSH Key。在用户主目录下(

cd ~

然后

pwd

,即可看到用户主目录路径),看看有没有.ssh目录,如果有,再看看这个目录下有没有

id_rsa

id_rsa.pub

这两个文件,如果已经有了,可直接跳到下一步。如果没有,打开Shell(Windows下打开Git Bash),创建SSH Key:

ssh-keygen -t rsa -C "[email protected]"

你需要把邮件地址换成你自己的邮件地址,然后一路回车,使用默认值即可,由于这个Key也不是用于军事目的,所以也无需设置密码。

如果一切顺利的话,可以在用户主目录里找到

.ssh

目录,里面有

id_rsa

id_rsa.pub

两个文件,这两个就是SSH Key的秘钥对,

id_rsa

是私钥,不能泄露出去,

id_rsa.pub

是公钥,可以放心地告诉任何人。

第2步:登陆GitHub,打开“Account settings”,“SSH Keys”页面:

然后,点“Add SSH Key”,填上任意Title,在Key文本框里粘贴

id_rsa.pub

文件的内容

关联&提交远程库

要关联一个远程库,使用命令

git remote add fp [email protected]:ggbondd/fucking-physical.git

关联一个远程库时必须给远程库指定一个名字,

origin

是默认习惯命名;

关联后,使用命令

git push -u origin master

第一次推送master分支的所有内容;

此后,每次本地提交后,只要有必要,就可以使用命令

git push origin master

推送最新修改;

解绑远程库

查看本地已经关联的远程库:

git remote -v

git remote remove origin

克隆远程库

要克隆一个仓库,首先必须知道仓库的地址,然后使用

git clone

命令克隆。

Git支持多种协议,包括

https

,但

ssh

协议速度最快。

分支管理

查看分支:

git branch

查看项目的分支们(包括本地和远程):

git branch -a

删除本地分支:

git branch -d <name>

删除远程分支:

git push origin --delete <Name>

创建分支:

git branch <name>

切换分支:

git switch <name>

创建+切换分支:

git switch -c <name>

合并某分支到当前分支:

git merge <name>

重命名分支

git branch -M <name>

继续阅读