安装及初始化
-
安装
待完善 -
初始化
情况描述:想要在一个文件夹中存储远程代码
实现方法://git文件夹(尽量确保文件夹路径无中文)初始化 git init //设置用于连接远程库的用户名和邮箱 git config --global user.name "自己的用户名" git config --global user.email "自己的邮箱号" //查看配置信息 git config --list
使用
-
初次拉代码
情况描述:初始化之后第一次从远程库获取代码
实现方法://1.从远程库克隆代码,注意使用Clone with commit-msg hook的项目地址 git clone ... 项目地址 ... //2.若出现授权窗口,输入授权密码 例如:初次拉取gerrit中的代码,在gerrit中依次点击: settings-》HTTP Credentials-》Generate new password,获得授权密码
1.项目地址在这里:(本文项目在Gerrit中)
注意使用HTTP下的Clone with commit-msg hook的项目地址2.授权密码在这里:
-
拉代码
情况描述:从远程库拉取最新的代码
实现方法://拉取远程库代码 git pull origin HEAD:refs/for/master
若本地有修改,git pull时可能提示冲突,需要按情况进行解决
git pull冲突解决 -
提交修改过的代码
情况描述:将本地修改的代码提交到远程库
实现方法://查看本地修改 git status //全部添加或部分添加 git add . 或 git add 文件全路径 //将远程库在本地合并(在commit之前拉代码可以避免填合并说明) git pull origin HEAD:refs/for/master //提交 git commit -m "[更新类型]中文描述" 例如:[BugFix]衣联网工厂模块;[BugFix]衣联网数据中台bug调整 //将远程库在本地合并(防止有别人更新代码) git pull origin HEAD:refs/for/master //推到远程库的指定分支 git push origin HEAD:refs/for/master
扩展
-
暂存本地修改的代码,拉取别人更新提交后的代码
情况描述:修改到一半,想同步其他人提交后的代码
//暂存本地修改 git stash //查看暂存代码 git stash list //同步远程代码 git pull //取回本地修改代码 git stash pop
-
给提交的代码打标签
情况描述:commit之后,打上标签,方便版本管理和回退
//为上次commit打标签 git tag -a 001.000.000_20211201_ruoyi -m "ruoyi_v1.0" //为指定的commit打标签 git tag -a 001.000.000_20211201_ruoyi c98c186ebb381005b495f6f1f2a65dc72195ad9d -m "ruoyi_v1.0" //查看已有标签 git show 001.000.000_20211201_ruoyi //将标签推送到服务器 git push origin 001.000.000_20211201_ruoyi //更新本地代码 git pull origin HEAD:refs/for/master //删除本地标签 git tag -d 001.000.000_20211201_ruoyi //删除服务器标签 git push origin :refs/tags/001.000.000_20211201_ruoyi git push origin --delete 001.000.000_20211201_ruoyi //将代码切换到标签所在分支版本 git checkout 001.000.000_20211201_ruoyi //将代码切换回主分支版本 git checkout master
-
提交错了,如何撤销
已经add了,如何撤销
//只删除建立的版本库索引(index),不删除文件本身 git rm --cached 文件名
已经commit了,如何撤销
//只改变了HEAD的指向,本地代码不会变化 //使用git status依然可以看到,也可以再次git commit提交 //~1代表回退到上一个版本 git reset --soft HEAD~1 //不仅改变指向,也会直接改变本地源码回到上一个版本 git reset --hard HEAD~1
git reset可以看成不产生commits,它只是改变了当前HEAD指向的commits
-
本地代码版本回退之后,如何改变远程仓库的版本
add-》commit-》pull push
//pull push时会提交失败 //因为当前本地分支的版本低于远程分支的版本 //所以要想覆盖掉它,必须使用force git push origin 分支 --force