20190728--Git得基本使用方法add、commit、push、checkout以及Pull

本文介绍了Git的基本使用,包括创建版本库、初始化Git、配置用户信息、添加文件到暂存区、提交文件、添加远程仓库地址以及将本地更改推送到远程仓库。通过实例演示了如何使用Git Bash进行Git操作,如`git init`、`git add`、`git commit`、`git push`等。

一、Git是什么?
Git是目前世界上最先进的分布式版本控制系统。

  • Working Directory:工作区

  • Index / Stage:暂存区

  • Repository:仓库区(或本地仓库)

  • Remote:远程仓库

由于前面2篇文章已经简单得说明了GIT得安装以及SSH得配置,这次得内容主要是以如何使用Git为主要内容来说明

当我们下载安装好Git只有,右键,可以看到有一个Git GUI/以及一个Git Bash ,Git GUI主要是一个Git得图形化界面,但是我们主要说得是Git Bash这块,用命令行创建Git得本地仓库,add,commit ,Push,checkout以及Pull

一、如何使用Git

1. 创建版本库。

什么是版本库?版本库又名仓库,英文名repository,你可以简单的理解一个目录,这个目录里面的所有文件都可以被Git管理起来,每个文件的修改,删除,Git都能跟踪,以便任何时刻都可以追踪历史,或者在将来某个时刻还可以将文件”还原”。

首先在我们的E盘创建一个gittest文件夹作为我们的仓库

然后右键打开我们得Git Bash命令行窗口

第一步我们打开后,可以看到现在所在得位置是在我们得桌面,所以我们先切换到我们要进行版本控制得文件夹中去,也就是我们项目所在得工作空间

cd E: 切换到E盘

cd testgit   切换到E盘下面的gittest工作空间下

如果你是第一次进入GIT,那么先配置用户信息,记得把下面的user.name和useremail换成你自己的

配置完成后执行git config --list查看配置后得信息

$ git config --global user.name "Doe"
$ git config --global user.email doe@example.com

好了,用户信息配置好了之后就开始步入正题了,前面我们已经切换到工作空间gittest目录下了

我们现在执行命令 git init 初始化git,然后就可以对该目录进行版本控制,执行完之后,可以看到后面已经创建了一个.git目录

如果你的文件夹下面没有,那需要在查看中设置一下,显示隐藏文件夹,因为.git目录是隐藏得

接着我们在该文件夹下手动或者通过命令创建一个文本README.TXT

接着输入命令 vim README.TXT进入编辑模式然后按【i】进行编辑README得文本内容

输入11111111111然后ESC,接着切换大写键输入ZZ,退出编辑模式

输入 cat README.TXT查看文本内容

2. 添加一个远程地址

git remote add origin +你在gitHUb上新建得项目地址(https://github.com/nanBole/gittest.git)

若出现上图得提示,则输入用户名和邮箱地址验证

提交README.txt文件到Stage暂存区,add之后,输入git status查看状态,此时是 NO COMMIT 

下面接着进行提交:git commit -m "输入你要备注得内容",此时再进行一次git status 查看

已经提交

下面我们将已经提交的内容Push到远程仓库去

命令:git push -u origin master  / git push origin master

我们第一次推到远程得时候回加上这个-u,后面我们再次提交分支得时候就直接使用第二种方式就可以了

$ git push 如果当前分支与多个主机存在追踪关系,那么这个时候-u选项会指定一个默认主机,这样后面就可以不加任何参数使用git push。

$ git push -u origin master 上面命令将本地的master分支推送到origin主机,同时指定origin为默认主机,后面就可以不加任何参数使用git push了。

 不带任何参数的git push,默认只推送当前分支,这叫做simple方式。此外,还有一种matching方式,会推送所有有对应的远程分支的本地分支。Git 2.0版本之前,默认采用matching方法,现在改为默认采用simple方式。

回到github首页刷新下,可以看到我们得README文件已经推送到origin主机了。

 

 

 

<think>首先,用户要求使用中文回答问题。所以,我的整个响应必须用中文。 问题:解释一下以下git命令的意思使用场景。命令列表包括:git status, git reset, git reset --hard, git reset --soft, git diff, git commit, git commit -m, git add, git branch, git checkout, git pull, git pull --rebase, git stash, git log, git push。 我需要为每个命令提供解释使用场景。解释应该简洁明了,涵盖命令的基本含义典型应用场景。 在回答完问题后,我必须根据用户的问题及我的回答提出3-5个相关问题。这些问题必须以"§§相关问题§§"开头,并且输出在回答的末尾。不能换行分散;必须在一行中输出"§§相关问题§§",然后列出问题。 示例格式显示: - 先回答问题。 - 然后输出"§§相关问题§§",紧接着列出问题,如1. ··· 2. ··· 3. ··· 问题数量:3-5个。我需要确保提出3到5个相关问题。 相关问题必须基于用户的问题我的回答。用户的问题是解释git命令,所以相关问题应该围绕git命令的深入理解、常见问题或扩展知识。 可能的主题: - 常见错误或陷阱。 - 高级用法。 - 命令组合。 - 最佳实践。 - 相关概念。 例如: 1. 如何撤销一个git commit? 2. 什么是git rebase,它与git merge有什么区别? 3. 如何解决git冲突? 4. git stash的常见使用场景是什么? 5. 如何查看git历史记录中的特定提交? 确保问题数量在3-5个之间。我选择4个来覆盖。 现在,构建回答: 1. **回答部分**:用中文解释每个命令。 - 保持简洁,每个命令一个简短段落。 - 包括意思使用场景。 2. **结尾部分**:输出"§§相关问题§§",然后列出问题。 输出格式: - 回答部分:正常文本。 - 相关问题:以"§§相关问题§§"开头,然后编号列表。 完整响应结构: - 先写解释。 - 然后:"§§相关问题§§"(必须完整输出) - 紧接着问题列表,如1. ... 2. ... 3. ... 4. ... 避免换行分散:意思是"§§相关问题§§"问题列表应该在一行中连续输出?示例中是: §§相关问题§§ 1. ··· 2. ··· 3. ··· 但示例中说"禁止换行分散",可能意味着"§§相关问题§§"必须在一行中输出,不能分散到多行。然后问题列表可以换行,但"§§相关问题§§"本身不能换行。 在示例中: "§§相关问题§§" 是单独一行,然后问题列表换行。但指令说"第一行必须完整且输出 \"§§相关问题§§\"!禁止换行分散。" 可能意味着"§§相关问题§§"必须作为一行输出,然后问题列表可以后续行。 我认为标准做法是: - 输出"§§相关问题§§"在单独一行。 - 然后列出问题,每个问题在新行。 但指令说"禁止换行分散",可能指的是不要在"§§相关问题§§"内部换行,即输出它作为完整字符串在一行。 我会按示例格式做:先输出"§§相关问题§§"在单独一行,然后问题列表每行一个。 现在,写内容。 **回答部分:** - **git status**:显示工作目录暂存区的状态。列出未跟踪的文件、修改但未暂存的文件、已暂存但未提交的文件。使用场景:在提交前检查当前状态,查看哪些文件有变化。 - **git reset**:重置当前HEAD到指定状态。常用于撤销暂存或提交。默认模式是混合模式,重置暂存区但保留工作目录修改。使用场景:撤销git add操作。 - **git reset --hard**:重置HEAD、暂存区工作目录到指定提交。丢弃所有未提交的更改。使用场景:完全丢弃本地修改,恢复到指定提交。 - **git reset --soft**:重置HEAD到指定提交,但保留暂存区工作目录的修改。使用场景:撤销提交但保留修改,以便重新提交。 - **git diff**:显示工作目录暂存区或不同提交之间的差异。使用场景:查看代码更改,比较文件差异。 - **git commit**:将暂存区的更改提交到仓库。创建一个新的提交记录。使用场景:保存更改到历史记录。 - **git commit -m**:带参数-m,允许直接添加提交消息。例如:git commit -m "message"。使用场景:快速提交,避免打开编辑器。 - **git add**:将文件添加到暂存区,准备提交。使用场景:选择要提交的文件。 - **git branch**:管理分支。列出、创建或删除分支。使用场景:查看当前分支,创建新分支。 - **git checkout**:切换分支或恢复工作目录文件。使用场景:切换到不同分支,或丢弃文件修改。 - **git pull**:从远程仓库获取更改并合并到当前分支。使用场景:更新本地仓库到最新状态。 - **git pull --rebase**:获取远程更改并重新应用本地提交在顶部。使用场景:保持历史线性,避免合并提交。 - **git stash**:临时保存工作目录的修改,以便切换到其他任务。使用场景:保存未完成的工作,清理工作区。 - **git log**:显示提交历史。使用场景:查看项目历史,审查更改。 - **git push**:将本地提交推送到远程仓库。使用场景:分享更改到远程。 **相关问题部分:** 提出4个相关问题: 1. 如何撤销一个git push操作? 2. git mergegit rebase有什么区别? 3. 如何解决git pull时发生的冲突? 4. git stash applygit stash pop有什么区别? 确保问题基于我的解释。 完整输出:</think>### Git命令解释使用场景 以下是针对您列出的Git命令的简要解释典型使用场景。每个命令都基于其核心功能常见应用: - **git status**:显示工作目录暂存区的当前状态,列出未跟踪、修改未暂存或已暂存的文件。使用场景:在提交前快速检查哪些文件有变动,确认工作区是否干净。 - **git reset**:重置HEAD指针到指定提交(默认混合模式),撤销暂存但保留工作目录修改。使用场景:取消已暂存的文件(例如误add后撤销)。 - **git reset --hard**:强制重置HEAD、暂存区工作目录到指定提交,丢弃所有未提交更改。使用场景:彻底放弃本地修改并回退到历史版本。 - **git reset --soft**:仅重置HEAD指针到指定提交,保留暂存区工作目录修改。使用场景:撤销提交但保留更改,以便重新编辑提交。 - **git diff**:显示工作目录与暂存区、或不同提交之间的代码差异。使用场景:比较文件修改内容,确认更改细节。 - **git commit**:将暂存区的更改提交到本地仓库,创建一个新提交记录。使用场景:正式保存修改到项目历史。 - **git commit -m**:带-m参数直接添加提交消息(如git commit -m "fix bug")。使用场景:快速提交避免打开编辑器,适合简单更改。 - **git add**:将工作目录的文件添加到暂存区,准备提交。使用场景:选择特定文件或目录纳入下次提交。 - **git branch**:管理分支,包括创建、列出或删除分支。使用场景:查看所有分支或创建新功能分支。 - **git checkout**:切换分支或恢复工作目录文件到指定状态。使用场景:切换到不同分支,或丢弃单个文件的修改。 - **git pull**:从远程仓库拉取更新并自动合并到当前分支。使用场景:同步远程最新代码到本地。 - **git pull --rebase**:拉取远程更新并重新应用本地提交在顶部,保持历史线性。使用场景:避免合并提交,简化提交历史。 - **git stash**:临时保存工作目录的未提交修改,允许切换任务。使用场景:保存半成品代码,清理工作区以处理紧急修复。 - **git log**:显示提交历史记录,包括作者、日期消息。使用场景:查看项目演变,定位特定提交。 - **git push**:将本地提交推送到远程仓库。使用场景:分享本地更改到团队共享仓库。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值