linux的git命令学习
工作做使用vscode下的git插件来管理代码的。
#安装git
apt-get install git
#配置ssh密钥
ssh-keygen -t rsa -C "name"
cat ~/.ssh/id_rsa.pub
#复制ssh密钥到github账号配置好就可以进行ssh克隆了
#配置账号,邮箱
git config --global user.name "Your Name“
git config --global user.email email@example.com
#创建版本库
git init
#拉取代码
#拉起master主分支代码
git clone ssh://git@xxxxxxx
#需拉取其他declop分支代码
git clone ssh://git@xxxxxxx #克隆代码
git checkout develop #切换develop分支
git branch #查询当前分支
拉取对应标签的版本
git checkout -b new_branch v1.0
git checkout -b [分支名称] [tag标签名称]
#提交代码
#自己是最新的状态
#添加到暂存区
git add xx文件名 或者 git add .当前目录修改的文件
git status #查看修改了哪些文件 查看工作区文件状态
git diff xx文件名 #某个文件具体修改了什么内容
#添加到本地仓库
git commit -m "xxx备注"
#推送到远程仓库 因为默认本地分支为origin
git push origin master
#修改文件
git status #查看状态
git diff #查看改动地方
git add
git commit -m ""
git push origin master
#修改文件
#1、修改工作区修改的文件,就是没有add的
git status
git checkout -- xxx文件名
#2、回复add之后的文件
git status #查看文件状态
git reset HEAD xxx文件 回到暂存区了,再次就可以checkout
#3、恢复commit之后的文件
git log 查看commit提交日志
# HEAD表示当前版本,HEAD^表示上一个版本,HEAD^^表示上上版本
git reset --hard HEAD^
#再可以查看文件是否恢复过来了
#删除恢复文件
#1、工作台删除要恢复
git checkout -- xxx文件名
#2、需要删除提交仓库
git rm xxx文件名
#提交存在冲突
#先push报错,提示自动合并失败
git diff origin/master #对吧当前仓库和远程仓库区别
解决冲突
再次git add,commit,push提交
#使用分支合并式开发
#查看分支情况
git branch
#新建分支
git branch avi
#再次查看分支情况
git branch
#切换进入分支
git checkout avi
#修改add,commit文件
#切换master分支
git checkout matser
#合并
git merge
#查看文本
ll
#删除分支
git branch -d avi
git branch #查看分支是否被删除
#分支合并最新代码
git merge master
#本地更新远程分支情况
#这个命令会从所有配置的远程仓库中获取最新的信息,并更新本地的远程分支跟踪。 一旦完成,您可以通过查看所有分支来确认分支是否已成功获取
git fetch --all
#更新子模块
要更新 Git 子模块,您可以执行以下步骤:
进入包含子模块的父项目的根目录。 注意目录层次,是位于子模块文件夹的外面
使用以下命令拉取最新的子模块更改:
shell
git submodule update --remote <子模块名称>
<子模块名称> 是要更新的子模块的名称。如果要更新所有子模块,可以省略 <子模块名称>。
提交父项目对子模块的更新:
shell
git add <子模块路径>
git commit -m "更新子模块"
<子模块路径> 是子模块在父项目中的路径。
推送父项目和子模块的更新到远程仓库:
shell
git push
这样就完成了 Git 子模块的更新。
请注意,更新子模块将会改变父项目引用的子模块的版本。确保在更新之前备份任何重要的更改,并确保您对子模块的所做的更改不会丢失。
子模块提交
在父仓库中对子模块进行修改,比如切换到不同的提交、分支或标签。
在父仓库中运行 git status 命令,会看到子模块目录下有改动。
使用 git add <submodule-path> 将子模块的引用指针变化记录到暂存区。
运行 git commit -m "Update submodule to latest version" 提交父仓库的改动,包括子模块的引用指针变化。
最后运行 git push 推送父仓库的改动。
#tag版本的相关操作
创建标签:
创建一个轻量标签:git tag <tag_name>
创建一个带注释的标签:git tag -a <tag_name> -m "tag message"
查看标签:
查看所有标签:git tag
查看特定标签信息:git show <tag_name>
推送标签到远程仓库:
推送单个标签:git push origin <tag_name>
推送所有标签:git push origin --tags
删除标签:
删除本地标签:git tag -d <tag_name>
删除远程标签:git push origin :refs/tags/<tag_name>
检出标签:
检出特定标签:git checkout <tag_name>
列出符合特定条件的标签:
列出符合特定模式的标签:git tag -l 'v1.0.*'
查找符合特定提交的标签:
查找包含某个提交的标签:git tag --contains <commit_hash>
通过这些基本的 git tag 相关操作,你可以在代码仓库中更好地管理和跟