整理一些工作中使用到的git指令操作场景集合

1. 全局设置git用户名、邮箱

git config --global user.name "xinyiyake006"
git config --global user.email "[email protected]"

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  #创建分支
git switch  #切换分支
git checkout <分支名称> # 切换到已存在的指定分支
git checkout -b  #创建+切换分支
git switch -c  #创建+切换分支
git merge  #合并某分支到当前分支
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  
  • 克隆项目后,默认子模块目录下无任何内容。需要在项目根目录执行如下命令完成子模块的下载:
git submodule init
git submodule update

或者

git submodule update --init --recursive
  • 子模块的更新,进入到子模块目录下,执行git pull更新
  • 删除子模块
rm -rf 子模块目录  # 删除子模块目录及源码
vi .git/config          # 删除配置项中子模块相关条目
rm .git/module/*    # 删除模块下的子模块目录,每个子模块对应一个目录,注意只删除对应的子模块目录即可

你可能感兴趣的:(整理一些工作中使用到的git指令操作场景集合)