Git Bash 命令

本文详细介绍了Git的基本操作,包括安装Git,克隆项目,分支管理(切换和创建分支),提交与推送代码,以及如何处理回退和冲突。特别强调了在不同场景下如何使用`gitpush`,`gitreset`和`gitrevert`。

目录

一、安装git

二、git 克隆下载项目 clone

1. 找一个项目的存放位置

2. 进入终端

3. 执行克隆命令

(1)clone master

(2)clone 自定义分支 

三、分支管理 checkout

1. 切换分支

(1)切换已有分支

(2)建立并切换新分支

2. 本地更新远程分支信息

四、提交项目 push

1. 操作

(1)git branch 查看是否为自己的分支

(2)add 暂存

(3)commit 提交

(4)pull 拉代码

(5)push 推到线上

2. 相关问题

(1)若提示:fatal: The current branch [branch名] has no upstream branch.To push the current branch and set the remote as upstream, use git push --set-upstream origin [branch名]

(2)若提示:fast-forward

(3)若提示:Merge made by the 'ort' strategy.

五、回退项目 reset

1. 针对已经 commit ,但没有 push 的:

2. 针对已经 push 到远端的:

六、.gitignore 文件

1. 作用

2. 创建

3. 语法

(1)/符号(目录、根目录)

① 开头是否有/

② 结尾是否有/

(2)*符号和**符号(通配符)

(3)?符号(通配符)

(4)#符号(注释)

(5)查看忽略文件

4. 解决gitignore文件配置失效的问题


一、安装git

  • 官网下载并安装git。
  • 安装好后,在电脑任意处右键,会出现如下图的选项(表示已经安装成功),选择git bash here,即可进入到终端界面。

二、git 克隆下载项目 clone

1. 找一个项目的存放位置

        在电脑任意处,创建一个空文件夹。

2. 进入终端

        在该空文件夹处右键,选择git bash here,进入终端。

3. 执行克隆命令

(1)clone master

git clone [项目链接]

(2)clone 自定义分支 

git clone -b [分支名] [项目链接]

三、分支管理 checkout

以下操作均在vscode终端中使用。

1. 切换分支

        首次打开项目时,一定要查看是否为自己的分支。若是其他分支,请先切换成自己分支。

(1)切换已有分支

git checkout [分支名称]

(2)建立并切换新分支

git checkout -b [分支名称] 

 注意:要分清-b是创建,-d是删除,不要搞错了。

2. 本地更新远程分支信息

        针对:远程分支更新了,本地没有即时更新分支信息。

 # 查看本地项目链接的远端地址
git remote -v

# 首先,查看本地所有分支
git branch -a

# 更新远端的分支到本地
git fetch origin

# 最后,切换成自己想要的分支
git checkout [分支名称]

# 再次确认查看分支
git branch

四、提交项目 push

1. 操作

(1)git branch 查看是否为自己的分支

(2)add 暂存

(3)commit 提交

(4)pull 拉代码

(5)push 推到线上

# 首先,添加到暂存区
git add .

# 然后,提交并写解释
git commit -m "fix: 这是我提交的代码标题"

# 再拉一下master(并解决merge冲突)
git pull origin master
# 知识点:git pull命令就是git fetch 和 git merge两个命令的组合

# 确认是否为自己的分支
git branch

# 最后,push上传
git push

2. 相关问题

若 pull 之后,既没有更新代码,也没有显示already update的提示,而是出现如下问题。

(1)若提示:fatal: The current branch [branch名] has no upstream branch.To push the current branch and set the remote as upstream, use git push --set-upstream origin [branch名]

原因:新建分支的第一次push,会出现这个情况。

解决:终端输入下方命令,即可push成功。

git push --set-upstream origin [branch名]

第一次执行完后,下次提交项目时,就只需输入git push即可。

(2)若提示:fast-forward

原因:自己提交的版本,已被master合并。然后自己又拉了一下master,这时,自己本地端和远端master是一致的。

解决:只需要再执行一次git push。保持自己本地端、与自己远端保持一致。

(3)若提示:Merge made by the 'ort' strategy.

原因:当执行git pull origin master后,同个分支的本地代码和远端代码不一致。

解决:本地拉一下自己远端分支,或者本地代码推到远端分支。

五、回退项目 reset

1. 针对已经 commit ,但没有 push 的:

# 首先,查看记录
git log --oneline -3

注意:最好加上限制条件(如 - 3 ,表示只查最近的三次 commit编号记录)

# 然后,执行回退
git reset [要回滚到的 commit编号]

撤回到上一个版本:

# 较好用的是直接使用 HEAD^ 替代<commit ID>。即撤回到上一个版本,也可以写成 HEAD~1。
git reset HEAD^ 

其中,

--mixed(默认参数)    是撤销git commit和git add,但保留本地改动内容。使用例子:git reset --mixed <commit ID> 或 git reset <commit ID>

--soft   是撤销git commit,不撤销git add。使用例子:git reset --soft<commit ID>

--hard   是全部撤销,包括删除本地修改的内容。慎用!!不会把程式改动再放回 working directory。

2. 针对已经 push 到远端的:

此时不要用 "git reset",而是用 "git revert"!

因为 "git reset" 会抹掉历史,而 "git revert" 用于回滚某次提交的内容,并生成新的提交,不会抹掉历史。

若执行回退时,遇到问题:commit is a merge but no -m option was given

原因:回退的这个ID,属于已经正常合并的代码,是已经解决了冲突,不给回退的机会。(只有当没有解决完冲突而被误提交了,才可以回退)

六、.gitignore 文件

1. 作用

忽略文件修改。即,该文件可指定部分文件上传到git远程仓库(被忽略上传)。

如果不想让某些文件的修改内容被更新到远程库,则在该文件中进行配置。

2. 创建

在根目录下创建该文件(.gitignore)

创建命令:touch .gitignore

3. 语法

(1)/符号(目录、根目录)

① 开头是否有/

/filename/ :表示忽略只在根目录下的filename目录里的所有内容

filename/ :表示忽略所有filename目录里的所有内容(包括根目录和其他目录)

② 结尾是否有/

/filename/和filename/的末尾都有一个/,表明是文件夹。如果结尾没有/,会先匹配文件,若没有文件才会匹配目录。

注意:使用/,而不是\

(2)*符号和**符号(通配符)

单个*符号:表示多个任意字符。例如,music* 表示music前缀的文件名的所有文件夹

两个*符号:表示任意中间目录。例如,music/**/Henry :表示music目录下的任意中间目录的Henry文件夹

(3)?符号(通配符)

匹配一个字符。

(4)#符号(注释)

用#开头的语句会被注释,可用反斜杠/来转义显示#符号

(5)查看忽略文件

命令行输入:git status

4. 解决gitignore文件配置失效的问题

终端执行如下命令:

#(1)清除本地缓存
git rm -r --cached .

#(2)暂存
git add .

#(3)提交
git commit -m "update .gitignore"

可参考官方文章:https://learn.microsoft.com/zh-cn/azure/devops/repos/git/ignore-files?view=azure-devops&tabs=visual-studio-2022

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值