Git基础

一、简介

  • 方便多人协同开发

  • 方便版本控制

  • 作者Linux之父:Linus Torvalds

  • git开发目的:为了辅助Linux内核的开发

  • 是Linus被逼无奈,花了2个星期用c写的

  • 2008年,GitHub网站上线,为开源项目免费提供Git存储,无数开源项目开始迁移至GitHub

  • Git迅速成为最流行的分布式版本控制系统(没有之一)

二、Git结构

Git是分布式管理系统。服务端和客户端都有版本控制功能,都能进行代码的提交,合并,..

图一

Git基础_第1张图片
GIT_interview

图二

Git基础_第2张图片
work_directory_index

三、本地仓库操作

1、安装git

  • ubuntu下安装

    sudo apt-get install git
    
  • windows下安装

    gitforwindows官网

    点击下载

2、查看是否安装成功

git --version

3、创建本地仓库

  1. 创建一个文件夹用于存放项目文件(mygit)

  2. 新建本地仓库

    cd ~/mygit/
    # 初始化
    git init
    # 会创建一个.git的隐藏文件,关于版本控制的文件都存放在这里,绝对不要改动
    
    Git基础_第3张图片
  3. 配置个人信息

    # 配置全局信息
    git config --global user.name 'yun'
    git config --global user.email '[email protected]'
    # 配置信息会保存在家目录下
    ~/.gitconfig
    
    # 配置本项目个人信息
    git config user.name 'yun'
    git config user.email '[email protected]'
    # 配置信息存储在当前目录下的.git/config下
    
    Git基础_第4张图片

help

git add --help

调用浏览器,打开help页面

4、添加文件

在项目文件加下创建readme.md文件,输入以下内容。

1、先提交到暂存区

git add Readme.md

2、查看git状态

git status
Git基础_第5张图片

3、提交到本地仓库

git commit -m '新建了Readme.md文件'

git commit命令的,-m参数后输入的内容是提交说明。命令执行成功后显示几个文件被改动,加了多少行。每提交一次就会生成一个版本。

Git基础_第6张图片

5、历史版本

查看历史版本

git reflog可以查看所有分支的所有操作记录(),包含已删除的commit记录。

git log不能查看已删除的commit记录

git log
Git基础_第7张图片
git reflog
Git基础_第8张图片

6、版本切换

git reset --hard HEAD^

  • HEAD表示当前最新版本
  • HEAD^表示当前最新版本的前一个版本
  • HEAD^^表示当前最新版本的前两个版本,以此类推
  • HEAD~1表示当前最新版本的前一个版本
  • HEAD~8表示当前最新版本的前8个版本,以此类推

git reset --hard 版本号

当版本非常多时选择这种方法。版本号就是每次commit生成的hash值,只用取前几位数。

Git基础_第9张图片

7、撤销修改

运行git status命令会显示当前工作区,暂存区,仓库的状态。当工作区的所有代码都提交到仓库 并和仓库保持一致时会显示:

一旦有修改,git status命令会显示改动的文件,以及你应该怎么提交这些修改。

Git基础_第10张图片

1、撤销工作区代码

git checkout 文件名

修改文件后没有执行add,运行此命令可以撤销所有修改,一旦撤销没有后悔药哦,在确定抛弃所有修改时使用。

2、撤销暂存区的代码

# 第一步:将暂存区代码撤销到工作区
git reset HEAD 文件名
# 第二步:撤销工作区代码
git checkout 文件名
Git基础_第11张图片

8、对比文件

  1. 对比本地仓库与工作区

    git diff HEAD -- 文件名
    
  2. 对比本地仓库上个版本代码

    git diff HEAD HEAD^ -- 文件名
    
Git基础_第12张图片

9、文件删除

  1. 删除没有添加进版本库中的工作区中的文件

    # 直接删除不用做任何操作
    
  2. 删除已添加进工作区但没有提交的文件

    # 1.先撤回工作区
    git reset HEAD 文件名
    # 2.直接删除
    rm 文件名
    
  3. 已提交到版本库

    # 1.删除文件
    rm 文件名
    # 2.运行`git add .` 
    git add .
    # 3.提交
    git commit -m 'delete some file'
    

四、分支管理

新建仓库时默认创建master主分支

1、创建分支

git branch newbranch

切换到分支

git checkout newbranch

创建并切换到分支

git checkout -b newbranch

查看分支

git branch

2、合并分支

分支任务完成后,合并到主分支

首先切换到master分支

git checkout master

然后合并分支

git merge newbranch

3、删除分支

分支合并完之后,没有其他任务了,可以删除分支

git branch -d newbranch

五、远程仓库

github:https://gitee.com/
码云:https://github.com/

首先你需要注册一个码云的账户,然后创建一个空的仓库。这个在码云上有教程大家自行操作。

创建好仓库后,你的仓库会有两个地址,一个是https,一个是ssh。因为使用https需要输入用户名和密码,推荐使用ssh的方式。要使用ssh你需要设置你账户的ssh公钥。公钥管理

Git基础_第13张图片

1、公钥管理

生成公钥

 ssh-keygen -t rsa -C '[email protected]'
Git基础_第14张图片

部署公钥

Git基础_第15张图片
Git基础_第16张图片

添加后,在终端中输入

ssh -T [email protected]

clone测试

Git基础_第17张图片

2、添加远程仓库

要把本地仓库和远程仓库联系起来有两种方式:

克隆

远程仓库里已经存在项目文件,更换开发电脑,需要将项目从远程仓库clone到本地进行工作。

# 首先cd到你要存放项目的目录
cd ~/projects
# 然后运行下面的命令
git clone clone地址
eg:
git clone https://gitee.com/yun5704/12345wanwan.git

拉取

本地初始化一个仓库,设置远程仓库地址后再做拉取

和第一种方式的区别在于先创建仓库

git init # 新建仓库
git remote add origin https://gitee.com/yun5704/12345wanwan.git

3、推送到远程仓库push

git push origin master

4、拉取到本地仓库pull

git pull origin master

六、git在pycharm中的使用

1、环境配置

设置git的安装位置

Git基础_第18张图片

点击test

Git基础_第19张图片

允许版本控制器

Git基础_第20张图片

选择git

Git基础_第21张图片

查看版本控制器

Git基础_第22张图片

创建 .gitignore文件

Git基础_第23张图片

2、pycharm git使用

commit

Git基础_第24张图片
07 pycharmgit使用1.png
Git基础_第25张图片
08 pycharmgit使用2.png

一键还原修改

Git基础_第26张图片
09 pycharmgit使用3.png

Checkout Revision

Git基础_第27张图片
10 pycharmgit使用4.png

切换分支

Git基础_第28张图片
11 pycharmgit使用5.png

创建分支

Git基础_第29张图片
12 pycharmgit使用6.png
Git基础_第30张图片
13 pycharmgit使用7.png
Git基础_第31张图片
14 pycharmgit使用8.png

重置分支

Git基础_第32张图片
15 pycharmgit使用9.png
Git基础_第33张图片
16 pycharmgit使用10.png

撤销提交

Git基础_第34张图片
17 pycharmgit使用11.png

revert

Git基础_第35张图片
18 pycharmgit使用12.png

3、远程仓库

a、码云 gitee

搜索gitee

Git基础_第36张图片

Search in repositories 下载

Git基础_第37张图片

配置gitee

Git基础_第38张图片
Git基础_第39张图片
Git基础_第40张图片

上传到gitee

Git基础_第41张图片
Git基础_第42张图片

push

Git基础_第43张图片
Git基础_第44张图片

pull

Git基础_第45张图片
Git基础_第46张图片

b、github

github配置

Git基础_第47张图片

共享到github

Git基础_第48张图片

push和pull与gitee类似

你可能感兴趣的:(Git基础)