# Git 常用命令

  • ssh -T -v git@gitee.com 测试连接
  • git clone url 克隆一份代码到本地仓库
  • git branch 查看当前分支
    • -a 查看远程分支
  • git checkout . 本地所有修改的,没有的提交的,都返回到原来的状态
  • git checkout maste 切换分支
  • git checkout -b 本地分支名 origin/远程分支名 拉取远程分支到本地并切换分支
  • git add . 把修改加入stage中
  • git commit -m '备注' 提交修改并备注
  • git meger master 把 master 分支合并到当前分支
  • git branch -m oldName newName 本地复制重命名
  • git push origin master 把修改提交到远程仓库 master 分支
  • git push -f 强制把代码提交到远程
  • git pull 把远程库的代码更新到工作台
  • git pull --rebase origin master 强制把远程库的代码跟新到当前分支上面
  • git checkout -b test 新建test分支 -d 为删除
  • git status 查看当前分支有哪些修改
  • git reset --hard HEAD 撤销本地修改
  • git stash 把未完成的修改缓存到栈容器中
  • git stash list 查看所有的缓存
  • git stash pop 恢复本地分支到缓存状态
  • git commit --amend 修改刚未 push 最后一次的提示信息
  • git config core.ignorecase false 关闭 git 忽略大小写配置

# Git remote

  • git remote 查看主机名
  • git remote -v 查看主机名即网址
  • git remote show origin 查看主机详细信息
  • git remote add <主机名> <网址> 添加远程主机
  • git remote rm <主机名> 删除远程主机
  • git remote set-url origin <网址> 修改远程主机地址
  • git remote rename <原主机名> <新主机名> 修改远程主机的别名

# Git 当前目录关联远程仓库

git init
git remote add origin https://gitee.com/xxxx/test.git  // 添加远程仓库
git branch --set-upstream-to=origin/master master  // 本地仓库与远程仓库关联
git pull origin master --allow-unrelated-histories  // 拉取远程仓库内容到本地
git add . //添加到暂存区
git commit -m "备注" // 提交并备注
git push origin master // 提交到远程分支

# Git 仓库的整体迁移

git clone --mirror https://github.com/xxxxxxx/oldProject.git
cd oldProject.git
git remote set-url –-push origin https://github.com/xxxxxxx/newProject.git
git push –-mirror

# git忽略规则及 .gitignore 规则不生效的解决办法

git rm -r --cached .
git add .
git commit -m "update .gitignore"

# 修改已经提交到远端的 git commit 信息

git filter-branch --commit-filter '
if [ "$GIT_AUTHOR_EMAIL" = "123456@qq.com" ];
then
		GIT_AUTHOR_NAME="my name";
		GIT_AUTHOR_EMAIL="123456@qq.com";
		git commit-tree "$@";
else
		git commit-tree "$@";
fi' HEAD

git pull origin master --allow-unrelated-histories