Git基本操作

Git基本操作

Git概述

git是一个免费的开源的分布式版本控制系统、具有廉价的本地库、方便的暂存区域和多个工作流分支等特性。
何为版本控制?:
1.版本控住是一种记录文件内容变化,以便查订特定版本的系统、
2.版本控制其实最重要的是可以记录文件修改历史记录、从而能够查看历史版本、方便版本切换
为什么要版本控制?:
个人开发过渡到团队开发
Git基本操作

版本控制工具

集中式CVS、SVN、VSS…

有一个单一的集中管理的服务器、保存所有文件的修订版本、而协作人员通过客户端连接服务器取出最新的文件或者提交更新。
优点:
1.项目透明化、可以在一定程度上看到项目其他人在做什么
2.管理员可以轻松掌握每个开发者的权限
3.管理一个集中式的版本控制系统,要比远在各个客户端上维护本地数据来的容易
缺点:
1.*服务器单点故障期间则谁都无法提交更新、无法协同工作
Git基本操作

分布式:Git、Mercurial、Bazaar、Darcs…

客户端不是提取的最新版本的文件快照、而是把代码仓库完整的镜像下来(本地库)。每个客户端的每一次文件提取操作,实际上都是对整个文件仓库的完整备份。
优点:
1.任何一处协同工作文件发生故障、都可以在其他客户端的本地仓库进行恢复。
2.服务器断网的情况下也可以进行开发(因为版本控制是在本地进行的)
3.每个客户端保存的也都是整个完整的项目(包含历史记录、更加安全)
Git基本操作

Git工作机制

Git基本操作

Git和代码托管中心

代码托管中心是基于网络服务器的远程代码仓库、一般称之为远程库。
局域网: GitLab
互联网: GitHub(外网)、Gitee(国内网站、码云)

Git常用命令

git init 初始化本地库
git status 查看本地库状态
git add 文件名 添加到暂存区
git commit -m “日志文件” 文件名 提交到本地库
git reflog 查看历史记录
git reset --hard 版本号 版本切换
git conifg --global user.name 用户名 设置用户名
git conifg --global user.email 邮箱 设置邮箱

设置用户签名

签名的作用是区分不同的操作者、签名信息在每一个版本提交的信息中都可以看到、以此确认是谁提交的。
git首次安装必须设置用户签名、否则无法提交代码
注意:这里设置的用户名和密码与将来登陆GitHub的账号没有任何关系

初始化本地库 git init

o@DESKTOP-F746IH3 MINGW64 /d/Joker/gitDemo
$ git init
Initialized empty Git repository in D:/Joker/gitDemo/.git/
o@DESKTOP-F746IH3 MINGW64 /d/Joker/gitDemo (master)
$ ll
total 0
o@DESKTOP-F746IH3 MINGW64 /d/Joker/gitDemo (master)
$ ll -a
total 12
drwxr-xr-x 1 o 197121 0 5月   7 17:36 ./
drwxr-xr-x 1 o 197121 0 5月   7 17:35 ../
drwxr-xr-x 1 o 197121 0 5月   7 17:36 .git/
o@DESKTOP-F746IH3 MINGW64 /d/Joker/gitDemo (master)
$

查看本地库状态 git status

o@DESKTOP-F746IH3 MINGW64 /d/Joker/gitDemo (master)
$ git status
On branch master    //当前本地库所在分支master
No commits yet     //并且当前没有提交过任何东西
nothing to commit (create/copy files and use "git add" to track) 目前没有文件需要提交
o@DESKTOP-F746IH3 MINGW64 /d/Joker/gitDemo (master)
$

###添加新文件joker.txt后查看状态
o@DESKTOP-F746IH3 MINGW64 /d/Joker/gitDemo (master)
$ git status
On branch master   
No commits yet
Untracked files: //发现了一个未被追踪的文件joker.txt (存在于工作区、没有追踪过)
  (use "git add <file>..." to include in what will be committed)
        joker.txt
nothing added to commit but untracked files present (use "git add" to track)
o@DESKTOP-F746IH3 MINGW64 /d/Joker/gitDemo (master)

添加到暂存区 git add 文件名

o@DESKTOP-F746IH3 MINGW64 /d/Joker/gitDemo (master)
$ git add joker.txt
o@DESKTOP-F746IH3 MINGW64 /d/Joker/gitDemo (master)
$ git status
On branch master
No commits yet
Changes to be committed:  //当前文件存在于暂存区中
  (use "git rm --cached <file>..." to unstage)
        new file:   joker.txt
o@DESKTOP-F746IH3 MINGW64 /d/Joker/gitDemo (master)

提交到本地库 git commit -m “日志文件” 文件名

o@DESKTOP-F746IH3 MINGW64 /d/Joker/gitDemo (master)
$ git commit -m "first commit" joker.txt
[master (root-commit) ef2fe73] first commit
 1 file changed, 1 insertion(+)
 create mode 100644 joker.txt
o@DESKTOP-F746IH3 MINGW64 /d/Joker/gitDemo (master)
$

查看历史记录 git reflog

o@DESKTOP-F746IH3 MINGW64 /d/Joker/gitDemo (master)
$ git reflog
ef2fe73 (HEAD -> master) HEAD@{0}: commit (initial): first commit

o@DESKTOP-F746IH3 MINGW64 /d/Joker/gitDemo (master)
#查看详细日志  git log  
commit ef2fe73a615c4fd62c58f8589ed6208bbb0867a7 (HEAD -> master)
Author: JokerRens <Joker_xxxx@163.com>
Date:   Fri May 7 17:47:30 2021 +0800
    first commit
o@DESKTOP-F746IH3 MINGW64 /d/Joker/gitDemo (master)

Git分支

什么是分支

在版本控制中、同时推进多个任务、为每个任务,我们可以创建每个任务的独立分支、使用分支意味着可以把自己的工作从开发主线上分离开来、开发分支时候不会影响主分支运行。

分支的好处

1.同时推进多个功能开发、提高开发效率
2.各个分支在开发过程中开发失败、不会对其他分支产生任何影响,失败的分支可以删除重新开始

Git分支常用命令

git branch 分支名 创建分支
git branch -v 查看分支
git checkout 分支名 切换分支
git merge 分支名 把指定的分支合并到当前分支上

创建分支 git branch 分支名 与 查看分支 git branch -v

o@DESKTOP-F746IH3 MINGW64 /d/Joker/gitDemo (master)
$ git branch hot-fix

o@DESKTOP-F746IH3 MINGW64 /d/Joker/gitDemo (master)
$ git branch -v
  hot-fix ef2fe73 first commit
* master  ef2fe73 first commit
* 
o@DESKTOP-F746IH3 MINGW64 /d/Joker/gitDemo (master)

切换分支 git checkout 分支名

o@DESKTOP-F746IH3 MINGW64 /d/Joker/gitDemo (master)
$ git checkout hot-fix
Switched to branch 'hot-fix'

o@DESKTOP-F746IH3 MINGW64 /d/Joker/gitDemo (hot-fix)
$ git branch -v
* hot-fix ef2fe73 first commit
  master  ef2fe73 first commit

o@DESKTOP-F746IH3 MINGW64 /d/Joker/gitDemo (hot-fix)

GitHub常用命令

git push 别名 分支 代码推送
git pull 项目 分支 代码拉取
git clone 远程地址 代码克隆

团队协作机制:
Git基本操作

SSH免密登陆

  ssh-keygen -t rsa -C joker

Git基本操作
Git基本操作

上一篇:Java中HashMap源码分析


下一篇:当执行太多不受信任的代码时,除去令人讨厌的大量 trycatch 的办法