目录
(3)若提示:Merge made by the 'ort' strategy.
一、安装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
本文详细介绍了Git的基本操作,包括安装Git,克隆项目,分支管理(切换和创建分支),提交与推送代码,以及如何处理回退和冲突。特别强调了在不同场景下如何使用`gitpush`,`gitreset`和`gitrevert`。
528






