Git介绍及指令

Git 是一个开源的分布式版本控制系统,用于跟踪文件的变化,特别是源代码的管理。它最初由 Linus Torvalds 为了开发 Linux 内核而创建,现在已成为软件开发中最流行的版本控制工具之一。

Git 的主要特点

分布式架构:

每个开发者的本地仓库都是完整的,而不仅仅是从远程服务器克隆的状态。这使得大多数操作(如提交和查看历史)可以在本地完成,不依赖于网络。

快速性能:

Git 在大多数操作上非常快,因为它的数据结构允许快速访问和修改。

数据完整性:

Git 使用 SHA-1 哈希算法来确保数据的完整性。每一次提交都会生成一个唯一的哈希值,确保内容在存储过程中的一致性。
强大的分支管理:

Git 支持轻量级的分支创建和切换,可以方便地进行实验和特性开发,随后再将分支合并回主分支。
非线性开发:

通过分支和合并,Git 允许多个开发者同时在不同的功能上工作,最终将更改合并到主线。

Git 的基本概念

仓库(Repository):用于存储项目的地方。Git 仓库可以是本地的,也可以是远程的。

提交(Commit):对文件的修改记录。每次提交都有一个唯一的 ID 和描述信息。

分支(Branch):用于开发新特性的隔离环境。主分支通常称为 main 或 master。

标签(Tag):用于标记特定的提交,通常用于发布版本。

暂存区(Staging Area):在提交之前,文件的修改会被放入暂存区,以便形成一个提交。

一、基础指令

git init:

用途描述:用于初始化一个新的 Git 仓库,在一个空目录中创建跟踪文件版本历史所需的隐藏 .git 目录。

     # 在一个空目录中执行
     cd /path/to/empty/directory
     git init
git clone :

用途描述:克隆一个远程仓库到本地,方便在本地进行开发和版本控制。

     git clone https://github.com/username/repository-name.git
git add 或 git add.:

用途描述:将文件添加到暂存区,准备进行提交。可以是单个文件路径,.表示当前目录下的所有文件。

     git add myfile.txt
     # 或添加当前目录下所有文件
     git add.
git commit -m “”:

用途描述:提交暂存区的文件到本地仓库,并提供一个描述本次提交更改内容的提交消息。

     git commit -m "Added new feature"
git status:

用途描述:查看当前仓库的状态,显示哪些文件被修改、暂存或未被跟踪等信息。

     git status
git log:

用途描述:查看提交历史,包括每次提交的哈希值、作者、提交时间和提交消息等信息。

     git log

二、分支操作指令

git branch:

用途描述:列出本地分支,显示当前所在分支以及所有本地分支的名称。

     git branch
git branch :

用途描述:创建一个新分支,用于并行开发或进行不同的功能开发。

     git branch new-feature-branch
git checkout :

用途描述:切换到指定分支,以便在该分支上进行开发。

     git checkout new-feature-branch
git merge :

用途描述:将指定分支合并到当前分支,如果两个分支有冲突,需要手动解决冲突后再提交合并结果。

     git merge feature-branch
git branch -d :

用途描述:删除已经合并到其他分支的本地分支,以保持分支的整洁。

     git branch -d old-branch

三、远程仓库操作指令

git remote add :

用途描述:添加一个远程仓库,通常使用 origin 作为别名,以便与远程仓库进行交互。

     git remote add origin https://github.com/username/repository-name.git
git remote -v:

用途描述:查看远程仓库信息,包括远程仓库的名称和 URL。

     git remote -v
git push :

用途描述:将本地分支推送到远程仓库的对应分支上,与团队成员共享代码更改。

     git push origin main
git pull :

用途描述:从远程仓库拉取最新的更改并合并到当前分支,保持本地仓库与远程仓库同步。

     git pull origin main

四、其他常用指令

git stash:

用途描述:暂存当前工作区的修改,当需要切换分支但又不想提交当前的修改时,可以使用这个命令,稍后可以恢复暂存的修改。

     git stash
git diff:

用途描述:查看文件的差异,可以比较工作区与暂存区、工作区与 HEAD(最新提交)、两个分支之间等的文件差异。

     # 比较工作区与暂存区的差异
     git diff
     # 比较工作区与 HEAD 的差异
     git diff HEAD
git reset :

用途描述:回退到指定的提交,可以强制回退或保留工作区的修改,用于撤销错误的提交或回到特定的版本。

     # 强制回退到指定提交
     git reset --hard <commit-hash>
     # 回退到指定提交但保留工作区的修改
     git reset --soft <commit-hash>
git rebase:

用途描述:重新应用一系列提交,可以将一个分支的提交应用到另一个分支上,通常用于整理提交历史或保持分支的线性历史。

     git rebase target-branch
git tag :

用途描述:创建一个标签,用于标记特定的提交,可以用于发布版本或标记重要的里程碑。

     git tag v1.0

五、文件操作相关

git rm :

用途描述:从版本控制中删除文件,并将其从暂存区和工作目录中移除。

     git rm myfile.txt
git mv :

用途描述:重命名文件或移动文件,将文件的重命名或移动操作纳入版本控制。

     git mv oldfile.txt newfile.txt

六、查看特定内容

git show :

用途描述:显示指定提交的详细信息,包括提交的哈希值、作者、提交时间、提交消息以及所涉及的文件更改。

     git show <commit-hash>
git show ::

用途描述:显示指定提交中某个文件的内容,用于查看特定提交中某个文件的状态,追踪文件的历史变化。

     git show <commit-hash>:myfile.txt

七、高级分支操作

git cherry-pick :

用途描述:将指定的提交应用到当前分支,从一个分支中挑选特定的提交,并将其应用到另一个分支上,而不引入其他提交。

     git cherry-pick <commit-hash>
git reflog:

用途描述:显示 Git 仓库的引用日志,记录了 HEAD 和分支引用的所有变化,可以用于恢复丢失的提交或回到过去的状态。

     git reflog

八、配置相关

git config --global user.name “”:

用途描述:设置全局的用户名,这个用户名会出现在你的提交中。

     git config --global user.name "Your Name"
git config --global user.email “”:

用途描述:设置全局的用户邮箱,同样会出现在提交中。

     git config --global user.email "your@email.com"
git config --list:

用途描述:列出所有的 Git 配置,包括全局配置和本地仓库配置,方便查看当前的配置设置。

     git config --list

九、子模块相关(如果你的项目使用子模块)

git submodule add

用途描述:将一个外部仓库作为子模块添加到当前项目中,方便管理多个相关项目的代码。

     git submodule add https://github.com/username/submodule-repo.git submodule-path
git submodule update --init --recursive:

用途描述:初始化并更新所有子模块,在克隆包含子模块的项目后,获取子模块的内容。

     git submodule update --init --recursive
十、远程仓库高级操作
git remote rename :

用途描述:重命名远程仓库的别名,方便管理多个远程仓库或更改默认的远程仓库别名。

     git remote rename old-name new-name
git remote prune :

用途描述:删除远程仓库中已经不存在的分支的本地跟踪分支,保持本地远程分支跟踪的整洁。

     git remote prune origin
十一、合并冲突处理
git mergetool:

用途描述:启动一个合并工具来帮助解决合并冲突,当合并两个分支出现冲突时,使用合并工具可以更直观地解决冲突。

     git mergetool
git diff --merge:

用途描述:查看合并冲突的具体差异,在解决合并冲突时,了解冲突的具体位置和内容。

     git diff --merge
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值