1. 全局设置git用户名、邮箱
git config --global user.name "xinyiyake006"
git config --global user.email "xinyiyake006@163.com"
2. 本地无文件,无仓库,通过clone复制远端git项目,做修改后提交
git clone http://gitlab.gemii.cc:8000/liz-medicine-healthy/righton-project/uni-doctor-side.git
cd uni-doctor-side
touch README.md
git add README.md
git commit -m "add README"
git push -u origin master
3. 有本地文件夹,无本地仓库,添加远端git项目地址,做修改后提交
cd existing_folder
git init
git remote add origin http://gitlab.gemii.cc:8000/liz-medicine-healthy/righton-project/uni-doctor-side.git
git add .
git commit -m "Initial commit"
git push -u origin master
4. 有本地文件夹,有本地git仓库,使用远端git项目地址替换本地git,做修改后提交
cd existing_repo
git remote rename origin old-origin
git remote add origin http://gitlab.gemii.cc:8000/liz-medicine-healthy/righton-project/uni-righton-doctor-side.git
git push -u origin --all
git push -u origin --tags
5. 分支管理
git branch #查看分支
git branch <name> #创建分支
git switch <name> #切换分支
git checkout <分支名称> # 切换到已存在的指定分支
git checkout -b <name> #创建+切换分支
git switch -c <name> #创建+切换分支
git merge <name> #合并某分支到当前分支
git branch -D test #删除一个分支
git remote rm origin #删除一个远端分支
git branch -r -d origin/dev #删掉远端名称叫origin下的dev分支
git fetch --all #git远程分支覆盖本地分支
git reset --hard origin/master (这里master要修改为对应的分支名)
git branch -d <分支名称> # 删除指定的本地分支
git branch -D <分支名称> #强制删除指定的本地分支
git reset --hard 3f0d3a6934e6ca8bb84b601bc7270ebe38342522 #回退到指定分支commit节点
6. git分支tag管理
git tag tagName #建立tag
git tag #查看tag
git push origin --tags #将tag推送到远端
git tag -d tagName #本地删除tag
tag git push origin :refs/tags/tagName #本地删除tag之后,执行此命令,删除远端tag
7. 修改源地址
- 直接修改源地址
git remote set-url origin NewGitURL
- 删掉旧的再添加新的
git remote rm origin
git remote add origin NewGitURL
8. 添加子模块
项目中经常使用别人维护的模块,在git中使用子模块的功能能够大大提高开发效率。使用子模块后,不必负责子模块的维护,只需要在必要的时候同步更新子模块即可。
- 子模块添加,url为子模块的路径,path为该子模块存储的目录路径
git submodule add <url> <path>
- 克隆项目后,默认子模块目录下无任何内容。需要在项目根目录执行如下命令完成子模块的下载:
git submodule init
git submodule update
或者
git submodule update --init --recursive
- 子模块的更新,进入到子模块目录下,执行
git pull
更新 - 删除子模块
rm -rf 子模块目录 # 删除子模块目录及源码
vi .git/config # 删除配置项中子模块相关条目
rm .git/module/* # 删除模块下的子模块目录,每个子模块对应一个目录,注意只删除对应的子模块目录即可