Git基本使用

Git简介

Git是一个免费的、开源的分布式版本控制系统,可以快速高效地处理从小型到大型的各种项目。是现代软件开发中不可或缺的工具之一,它通过其强大的分支管理、快速的操作和高效的协作能力,极大地促进了团队的开发效率和代码管理的便利性。

Git易于学习,占地面积小,性能极快。它具有廉价的本地库,方便的暂存域和多个工作流分支等特性。由Linus Torvalds为了管理Linux内核开发而创建。

Git下载安装地址:https://git-scm.com/

版本控制

版本控制是一种记录文件内容变化的系统,它允许用户查阅特定版本的修订历史。通过记录文件修改的详细历史,版本控制使得用户能够轻松查看和管理项目的不同版本,便于需要时进行版本切换和比较。

版本控制系统中的客户端并非简单地提取最新版本的文件快照,而是将整个代码仓库完整地镜像到本地。因此,每次文件的提取操作实际上都是对整个文件仓库的完整备份。这种方式使得即使发生了文件损坏或其他问题,也可以通过其他客户端的本地仓库进行快速恢复,确保项目数据的安全和稳定性。

分支概述

在 Git 中,分支是指向 Git 仓库中特定提交对象(commit)的可变指针。每个分支代表项目开发过程中的一个独立路径,允许开发人员并行进行不同的工作,而无需影响主线(主分支)的稳定性和开发进度。

在版本控制过程中,当需要同时推进多个任务时,可以为每个任务单独创建分支。这样一来,开发人员可以将各自的工作与主任务分隔开来,而在开发自己的分支时不会影响到主分支的稳定性和进度。

分支的主要优势在于能够并行推进多个功能的开发,从而提升整体开发效率。每个分支在开发过程中是独立的实体,如果某个分支的开发失败或不符合预期,可以直接删除而不会对其他分支造成任何影响。

Git常用命令

设置用户签名

复制代码
git config --global user.name 用户名
git config --global user.email 邮箱

签名的作用是区分不同操作者身份。用户的签名信息在每一个版本的提交信息中能够看到,以此确认本次提交是谁做的。Git首次安装必须设置一下用户签名,否则无法提交代码。

这里设置用户签名和将来登录GitHub(或其他代码托管中心)的账号没有任何关系。

了解所有Git配置

复制代码
git config --list

初始化本地库

复制代码
git init

查看当前所在分支(Windows PowerShell不显示,git bash则会出现在文件路径后面)

复制代码
git branch --show

查看本地库状态

复制代码
git status

添加文件到暂存区

复制代码
git add 文件名

添加所有文件到暂存区

复制代码
git add .

提交到本地库

复制代码
git commit -m "日志信息"

查看历史记录

复制代码
git reflog

版本穿梭

复制代码
git reset --hard 版本号

显示提交历史

复制代码
git log

创建分支

复制代码
git branch 分支名

切换分支

复制代码
git checkout 分支名

创建并切换分支

复制代码
git checkout -b 分支名

删除本地分支(如果该分支还未合并到当前分支会出现警告)

复制代码
git checkout -d 分支名

强制删除本地分支(直接删除)

复制代码
git branch -D 分支名

查看所有分支(包括本地分支和远程分支)

复制代码
git branch -a

查看本地分支最新提交信息

复制代码
git branch -v

查看远端分支

复制代码
git branch -r

合并其他分支

复制代码
git merge 分支名

拉取远端代码

复制代码
git clone 地址

本地分支获取远端最新更改

复制代码
git pull

获取所有最新的分支和数据

复制代码
git fetch

遇到冲突中止合并

复制代码
git merge --abort

本地分支推送远端并建立连接

复制代码
push -u origin 分支名

本地分支与远端分支建立连接

复制代码
git push --set-upstream origin 分支名

本地分支推送远端连接的分支

复制代码
git push

本地分支推送远端目标分支

复制代码
git rebase 分支名

删除远端分支

复制代码
git push -- delete origin 分支名

查看帮助

复制代码
git --help

查看指定命令帮助

复制代码
git 命令 --help
# 或者
git help 命令

如:git checkout --help 和 git help checkout

输入命令会打开网页端查看帮助信息。

查找一段时间内的提交记录

复制代码
git log --since="开始时间" --until="结束时间"

查找一段时间内指定账号的提交记录

复制代码
git log --since="开始时间" --until="结束时间" --author="账号名"

查找一段时间内指定账号的每次提交的变更行数

复制代码
git log --since="开始时间" --until="结束时间" --author="账号名" --oneline --shortstat

查找一段时间内指定账号提交的变更行数总数

复制代码
git log --since="开始时间" --until="结束时间" --author="账号名" --numstat --pretty="%H" | awk 'NF==3 {plus+=$1; minus+=$2} END {printf "Total lines added: %s, Total lines deleted: %s\n", plus, minus}'

查找一段时间内指定账号提交的次数

复制代码
git log --since="开始时间" --until="结束时间" --author="账号名" --pretty='%ae' |sort |uniq -c

查找一段时间内分支合并次数

复制代码
git log --since="开始时间" --until="结束时间" --merges --grep="Merge branch '分支名'" --pretty='%aN' | wc -l

Git上传代码基本流程

场景一:新建分支首次上传代码

bash 复制代码
# 新建文件夹
# 克隆远程仓库到文件夹里
git clone 地址
# 进入克隆下来的文件目录

# 建立分支
# 创建并切换到本地分支
git checkout -b 分支名
# 如果远端没有同名分支,则推送本地分支到远程并建立跟踪关系
git push -u origin 分支名
# 如果远端有同名分支,则本地分支与远端分支建立连接
git push --set-upstream origin 分支名

# 提交代码
# 修改代码后添加到暂存区
git add .
# 提交到本地仓库
git commit -m "日志信息"
# 送本地修改到远程同名分支
git push

# 之后在页面申请合并主分支

场景二:已有项目与人合作协作上传代码

bash 复制代码
# 获取最新代码
# 切换主分支(一般是dev分支或者master分支)
git checkout 主分支名 
# 获取最新主分支代码
git pull
# 切换本地个人开发分支
git checkout 分支名
# 合并最新主分支代码
git merge 主分支名 

# 提交代码
# 修改代码后添加到暂存区
git add .
# 提交到本地仓库
git commit -m "日志信息"
# 送本地修改到远程同名分支
git push

# 之后在页面申请合并主分支
相关推荐
九月镇灵将1 小时前
GitPython库快速应用入门
git·python·gitpython
程序猿chen2 小时前
《JVM考古现场(十五):熵火燎原——从量子递归到热寂晶壁的代码涅槃》
java·jvm·git·后端·java-ee·区块链·量子计算
前端三叶草5 小时前
git subtree 最佳实践
git
Code_Geo7 小时前
Git操作指南
git
阳光_你好9 小时前
解决用git bash终端 tail -f 命令查看日志中文乱码问题
开发语言·git·bash
geekmice18 小时前
多个git账户团队写作
git
森叶18 小时前
linux如何与windows进行共享文件夹开发,不用来回用git进行拉来拉去,这个对于swoole开发者来说特别重要
linux·git·swoole
qziovv19 小时前
GIT 撤销上次推送
git
Cloud_Air75419 小时前
本地合并多个仓库,保留Commit历史
git·github
high201121 小时前
【Git】-- 处理 Git 提交到错误分支的问题
git