代码管理及Linux模拟工具Git for Windows安装使用教程

代码管理及Linux模拟工具Git for Windows安装使用教程

作者:曾美尹 中国农科院深圳基因组研究所

审核:刘永鑫 中国农科院深圳基因组研究所

更新时间:2025/11/4

Git for Windows提供了Git Bash等工具,可管理代码、同步GitHub项目并模拟Linux环境。核心功能含GitHub项目管理(克隆项目 git clone、同步 git pull、暂存 git add、提交 git commit、推送 git push)及协作(Fork & Pull requests)、模拟Linux终端外观,运行Linux命令(ls、grep),并且Git Bash还可在RStudio中配置使用。关于Git for Windows的下载安装以及使用教程如下:

视频教程

B站链接:https://www.bilibili.com/video/BV14Y1CBUEt7/

目录

🔷 Git for Windows下载安装

🔷 Git项目的创建、下载、同步、更新

🔸 配置Git本地账号

🔸 创建新项目及下载

🔸 同步和更新

🔸 参与他人项目

🔷 Git bash实现类Linux运行环境

Git for Windows下载安装

1.官网:打开官网 https://gitforwindows.org/,点击 Download 进行下载:

  1. 安装程序:下载完成后,点击.exe程序进行安装:

直接点击Next

默认安装目录为C:\Program Files\Git

如果C盘空间不足,也可以改为其他安装目录

建议保持默认设定,点击Next直至Install

......

安装完成后便可使用Git了。

  1. 安装测试:安装完成后,我们可以在菜单栏找到Git系列,或者也可以在任何文件夹下单击鼠标右键快捷打开;

注意,在哪里启动GitBash,哪里就是当前目录,例如在菜单栏打开Git Bash,目录就是家目录(~);在D盘打开,目录就是/d

我们打开Git Bash,输入"git --version",如果显示Git版本信息则代表安装成功;

Git项目的创建、下载、同步、更新

安装完成后我们可以看到,Git主要由三个工具组成,分别是Git BashGit CMDGit GUI,三者共用同一个Git引擎,只是交互方式不同。

Git Bash 是一个类Linux命令行环境,它可以运行所有Git命令(如git add)同步GitHub项目,也能运行大量Linux命令(如ls, cat, grep, cd),模拟Linux目录结构、路径写法(/home/user/project);Git CMD 是在Windows的CMD命令提示符中加入了Git的执行路径。它可运行所有Git命令,使用Windows命令语法,但不支持Linux命令;Git GUI是一个图形化工具,可以可视化地执行常见操作。

Git Bash作为其中最常用的工具,这里我们将对其进行介绍:

一. 配置Git本地账号

使用GitBash进行代码管理时Git需要提交使用者的用户名和邮箱,所以需要先配置好个人信息。(这里的个人信息指的是GitHub账号信息,还没有GitHub账号的用户需要先在GitHub官网https://github.com/注册个人账号)。打开GitBash,输入以下命令:

git config --global user.name "GitHub用户名"

git config --global user.email "邮箱"

配置完成后可以使用 git config --list查看配置信息

二. 创建新项目及下载

  1. GitHub新建项目资源库:首先需要在GitHub官网(https://github.com )登陆个人账号,登陆后点击右上角+号,选择New repository;

在随后的界面中可以填写资源库名、创建 README/.gitignore 等,这里我们建了一个名为test的项目,并添加了一个README文件

创建成功后会自动进入这个项目的主页面,这里可以看到该项目目前只有一个我们创建的README文件,如果想要添加其他文件,可以点击右上角 Add files 选项,选择新建文件在线编辑或者上传本地文件;或者,也可以通过Git Bash同步本地与远端资源库(详见下文)

  1. GitHub项目下载:如果想要从GitHub下载项目到本地,可以点击项目主页的 Code 选项,选择 Download ZIP 下载整个项目;

如果想在Git Bash上下载并关联GitHub项目,可以通过 git clone命令与该项目的HTTPS URL实现。(传输速度受网络稳定性影响)

跳转到项目文件夹后会接一个*(main)* 字样,这是我们与GitHub连接的分支,以前一般为master,现在默认为main,也可以运行 git branch -M master将main修改为master。随后便可以在Git Bash上进行项目管理,详见下文。

三. 同步和更新

  1. Git分区解释 :在利用Git Bash进行项目管理之前,必须要先理解Git的各个分区。Git有四个区域------工作区Workspace暂存区Index/Stage本地仓库Local Repository远程仓库Remote ,工作区就是你的项目文件夹,平时修改代码、创建文件、删除文件,都发生在工作区;暂存区用于存放准备提交的文件,你可能修改了许多文件,但你只想提交其中一部分,那就可以用 git add 选择性放到暂存区,随后再 git commit 提交到本地仓库。提交到本地仓库的文件会形成永久记录,从而可以进行历史比较与版本回退;远程仓库就是GitHub上的仓库,当我们在本地仓库完成更新后,可以选择把其同步到云端,这个时候我们就可以利用 git push把本地仓库的修改历史同步到GitHub上,从而既能向他人展示代码,又能进行备份与多人协作。
  1. 项目同步及更新操作 :当我们在Git Bash上下载并关联了GitHub项目以后,就可以对其进行修改,有时一个项目有多人协作修改,我们就需要在修改之前先进行项目同步,确保当前是最新版后再修改并提交自己的更新内容;以上文新建的test项目为例,假设当前有其他人在协作这个项目,那么我们在进行修改前就需要运行 git pull把远程仓库里别人更新的代码拉下来,并与本地合并,确保当前为最新版后便可以对项目进行修改更新了;

# 假设我们要新增一个文件hello.txt

git pull # 确保在多人协作情况下拿到最新版本

echo "hello world/n" > hello.txt # 新建一个内容为hello world的hello.txt文件,也可以直接在文件夹内手动新建

git status # 查看文件状态,显示Untracked就代表文件还在工作区,未被传递到暂存区

git add hello.txt # 放入"暂存区"

# git add . # 也可以直接将工作区全部改动都加入暂存区

git status # 这时候可以再查看一下文件状态,已经改变了

# 接下来就可以把暂存区的文件提交到本地仓库了

git commit -m "Add hello.txt"# -m添加提交说明

git push# 推送至GitHub

这时候我们再进入GitHub查看test项目,可以看到main分支下新增了一个hello.txt文件,代表我们更新成功了

四. 参与他人项目

  1. Fork备份项目:我们可以在GitHub上备份他人项目以便本地使用或者参与合作更新,以EasyAmplicon包为例,我们可以在作者主页https://github.com/YongxinLiu/EasyAmplicon点击 Fork 将该项目备份至自己账号下;

再回到我们主页就可以看到该项目了

  1. 下载、同步、更新:操作与个人项目相同,只不过把test更换为EasyAmplicon罢了;

  2. 请求同步Pull requests:如果我们对他人的项目进行了更新,并且想向原作者同步我们所做的修改,可以在更新后的fork项目主页点击Pull requests;

随后点击New pull request

base repository 选择原作者的仓库,base 选它的主分支(main/master),head repository 选你的 fork,compare 选你刚推送的分支(main/master),写清标题与说明(做了什么、为什么、如何测试、可能影响、相关Issue/讨论链接等)后提交即可。(此处图片只做参考,因为我并没有对Fork项目做任何修改)

Git bash实现类Linux运行环境

Git for windows提供了大量linux命令的windows版本,可帮助用户在Windows系统Git bash命令行中实现绝大多数Linux命令和Shell脚本的运行。

  1. 查看可用的linux命令:本质上Git将Linux命令重新编写了适合windows使用的exe可执行文件版本,可运行以下代码查看一下系统中有哪些可用的linux命令;

# 进入系统命令目录

cd /bin

# 查看所有exe可执行程序

ls *.exe

列出了240余个Shell命令程序,不在目录的shell命令也可上网搜索相应的windows版本exe文件,人工添加至windows环境变量

  1. fasta文件操作示例:我们在桌面上进建一个test文件夹,进入后右键执行git bash,这时我们的起始目录即为当前test目录~/Desktop/test;

首先我们创建一个fasta序列文件,在终端中输入cat >test.txt创建名为test的txt文件,回车后即开始编写文件状态,随后复制以下内容写入文件------

>protein1

MEMEQEKMTMNKELSPDAAAYCCSACHGDETWSYNHPIRGRAKSRSLSASPALGSTKEFRRTRSLHGPCP

>protein2

VTTFGPKACVLQNPQTIMHIQDPASQRLTWNKSPKSVLVIKKMRDASLLQPFKELCTHLMEENMIVYVEK

KVLEDPAIASDESFGAVKKKFCTFREDYDDISNQIDFIICLGGDGTLLYASSLFQGSVPPVMAFHLGSLG

>protein3

FLTPFSFENFQSQVTQVIEGNAAVVLRSRLKVRVVKELRGKKTAVHNGLGENGSQAAGLDMDVGKQAMQY

QVLNEVVIDRGPSSYLSNVDVYLDGHLITTVQGDGVIVSTPTGSTAYAAAAGASMIHPNVPAIMITPICP

HSLSFRPIVVPAGVELKIMLSPEARNTAWVSFDGRKRQEIRHGDSISITTSCYPLPSICVRDPVSDWFES

>protein4

LAQCLHWNVRKKQAHFEEEEEEEEEG

在Git Bash中,我们只需按鼠标滚轮即可快速粘贴剪切板中内容,再按Ctrl+D组合实现结束编辑并保存。成功保存文件后,我们可以对这个序列文件进行简单的操作

# 使用cat命令显示文件内容

cat test.txt

# fasta文件通常为.fa的扩展名,mv命令改名

mv test.txt test.fa

# 文件很大可使用less按页查看,空格翻页,q退出查看模式

less test.fa

# 只查看序列名称行

grep '>' test.fa

# 统计序列条数:即上条命令接wc统计字数,-l只统计行数

grep '>' test.fa |wc -l

# sed去除序列名中的大于号

grep '>' test.fa | sed 's/>//'

# 显示每条序列长度

# 基本思路将fasta文件多行并单行两列,为序列名和序列

# 统计第二列长度并输出

awk '/^>/ {printf("\n%s\t",0);next;} {printf("%s",0);} END {printf("\n");}' test.fa | awk '{print 1,length(2)}'

  1. 在RStudio中操作Git Bash:如果你的电脑中刚好安装了RStudio,那么可以直接在RStudio中运行Git Bash。只需要将Tools ------ Global Options ------

Terminal处的 New terminals open with 选项切换为Git Bash,随后在操作台打开一个New terminal就好了;

切换New Terminal后可以直接在该terminal下输入Linux及Git命令,与直接使用Git Bash没有区别,只是RStudio提供了更加可视化的界面,可在Files栏直接观察文件状态

宏基因组推荐

本公众号现全面开放投稿,希望文章作者讲出自己的科研故事,分享论文的精华与亮点。投稿请联系小编(微信号:yongxinliu 或 meta-genomics)

iMeta高引 fastp PhyloSuite ImageGP2iNAP2 ggClusterNet2

iMeta工具 SangerBox2 美吉2024 OmicStudioWekemo OmicShare

iMeta综述 高脂饮食菌群 发酵中药 口腔菌群 微塑料 癌症 宿主代谢

10000+:扩增子EasyAmplicon 比较基因组JCVI 序列分析SeqKit2 维恩图EVenn

iMetaOmics高引 猪微生物组 16S扩增子综述 易扩增子(EasyAmplicon)

系列教程:微生物组入门 Biostar 微生物组 宏基因组

专业技能:学术图表 高分文章 生信宝典 不可或缺的人

点击阅读原文

相关推荐
孙同学_2 小时前
【Linux篇】信号从哪来?到哪去?—— Linux信号的产生方式与保存机制
linux·运维·服务器
唐古乌梁海2 小时前
【linux】crontab 命令详解,linux定时任务
linux·运维·服务器
aitav02 小时前
⚡ Linux awk 命令全面详解(包括记录、字段、命令空间)
linux·运维·服务器·bash·shell·awk
egoist20232 小时前
[linux仓库]线程同步与生产者消费者模型[线程·陆]
linux·c语言·开发语言·线程同步·阻塞队列·生产者消费者模型
qq_401700412 小时前
Linux 理解 nohup cmd & 后台运行机制
linux·运维·服务器
此生只爱蛋2 小时前
【Linux】TCP
linux·tcp/ip
郝学胜-神的一滴2 小时前
Linux的waitpid函数:深入解析与应用实践
linux·服务器·c++·程序人生
siriuuus2 小时前
Linux keepalived 基础知识
linux·运维·服务器·keepalived
AII_IIA3 小时前
Ubuntu误删libaudit.so.1 导致系统无法正常使用、崩溃
linux·ubuntu·selinux·audit·libaudit