# Git

# git 推送本地仓库到远程分支的流程

常用命令

命令说明命令
初始化仓库git init
添加文件到本地仓库git add .(文件 name)
添加文件描述信息git commit -m “first commit”
添加远程仓库git remote add origin + 远程仓库地址
同步远程分支git pull origin master
线性合并远程仓库git pull --rebase origin master (无需 commit)
推送到远程分支git push origin master <远程主机名> < 本地分支名 >:< 远程分支名 >
强制推送git push --force origin master
查看本地分支git branch -v <-a 查看所有分支>
查看远程分支git branch -r
删除本地分支git branch -d branName
删除远程分支git push origin --delete master
删除远程仓库文件git rm -r --cached [filenam]
切换分支git checkout main
创建本地分支git branch [name]
拉取远程分支代码git fetch
合并分支git merge [name]
创建并切换分支git checkout -b main
设置默认提交分支git push -u origin master <执行后下次推送可直接 git push>
同步远程删除的分支git remote prune origin
更新远程分支信息git remote update origin --prune
查看提交记录git log
清除 Git 缓存密码git credential-manager uninstall
分支重命名git branch -m master main
重新验证账户密码git config --global credential.helper store
查看 git 配置信息git cofig --list 简写 git config -l
设置全局账户 / 邮箱git config --global (user.name "" ) || (user.email "")
设置当前仓库账户 / 邮箱git confit --local (user.name "" ) || (user.email "")
覆盖之前的提交信息git commit --amend -m"说明信息"
回退版本,只回退 commit 信息git reset --soft
彻底回退,源码和 commit 均回退git reset --hard

远程仓库命令

  • 查看远程仓库:$ git remote -v
  • 添加远程仓库:$ git remote add [name] [url]
  • 删除远程仓库:$ git remote rm [name]
  • 修改远程仓库:$ git remote set-url --push [name] [newUrl]
  • 拉取远程仓库:$ git pull [remoteName] [localBranchName]
  • 推送远程仓库:$ git push [remoteName] [localBranchName]
  • 提交暂存区到仓库: $ git commit -m [message]
  • 自动将修改文件添加到索引中;并显示提交信息: $ git commit -a
  • 追加提交,覆盖上次的提交信息: $ git commit --amend

分支 branch 命令

  • 查看本地分支:$ git branch
  • 查看远程分支:$ git branch -r
  • 创建本地分支:$ git branch [name] ---- 注意新分支创建后不会自动切换为当前分支
  • 切换分支:$ git checkout [name]
  • 创建新分支并立即切换到新分支:$ git checkout -b [name]
  • 删除分支:$ git branch -d [name] ---- -d 选项只能删除已经参与了合并的分支,对于未有合并的分支是无法删除的。如果想强制删除一个分支,可以使用 - D 选项
  • 合并分支:$ git merge [name] ---- 将名称为 [name] 的分支与当前分支合并
  • 创建远程分支 (本地分支 push 到远程):$ git push origin [name]
  • 删除远程分支:$ git push origin --delete [branch_name]
  • 创建空的分支:(执行命令之前记得先提交你当前分支的修改,否则会被强制删干净没得后悔)
$git symbolic-ref HEAD refs/heads/[name]
$rm .git/index
$git clean -fdx

版本 tag 相关命令

  • 查看版本:$ git tag
  • 创建版本:$ git tag [name]
  • 删除版本:$ git tag -d [name]
  • 查看远程版本:$ git tag -r
  • 创建远程版本 (本地版本 push 到远程):$ git push origin [name]
  • 删除远程版本:$ git push origin :refs/tags/[name]
  • 合并远程仓库的 tag 到本地:$ git pull origin --tags
  • 上传本地 tag 到远程仓库:$ git push origin --tags
  • 创建带注释的 tag:$ git tag -a [name] -m 'yourMessage'

子模块 (submodule) 相关操作命令

  • 添加子模块:$ git submodule add [url] [path]
  • 初始化子模块:$ git submodule init ---- 只在首次检出仓库时运行一次就行
  • 更新子模块:$ git submodule update ---- 每次更新或切换分支后都需要运行一下
  • 删除子模块:(分 4 步走哦)
$ git rm --cached [path]
编辑“.gitmodules”文件,将子模块的相关配置节点删除掉
编辑“ .git/config”文件,将子模块的相关配置节点删除掉
手动删除子模块残留的目录

忽略一些文件,不提交的文件

在仓库根目录下创建名称为 “.gitignore” 的文件,写入不需要的文件夹名文件,每个元素占一行

target	 	#忽略 dbg 文件和 dbg 目录 	
target/	 	#只忽略 target 文件,不忽略 dbg 目录
target
!target/ 	#只忽略 dbg 文件不忽略 dgb 目录
/target  	#只忽略当前目录下的 target 文件和目录,子目录的 target 不在忽略范围内
bin		 
*.db
#忽略规则
# 以 '#' 开始的行,被视为注释.
 * ?:代表任意的一个字符
    * *:代表任意数目的字符
    * {!ab}:必须不是此类型
    * {ab,bb,cx}:代表ab,bb,cx中任一类型即可
    * [abc]:代表a,b,c中任一字符即可
    * [ ^abc]:代表必须不是a,b,c中任一字符

Git 证书路径变化

## 查看 git 系统配置信息
git config --system --list
## 修改 git 整数执行的路径
git config --system http.sslcainfo D:/AppHome/utils/Git/Git/mingw64/ssl/certs/ca-bundle.crt

Git 设置代理

  • GitHub 访问速度过慢导致相应的提交和拉去十分缓慢及超时的解决方案之一
  • 设置全局代理
# 设置 git 全局配置的 http 代理 7890 为对应代理的端口
git config --global http.http://github.com.proxy socks5://127.0.0.1:7890
git config --global http.https://github.com.proxy socks5://127.0.0.1:7890
# 取消代理设置
git config --global --unset http.proxy
git config --global --unset https.proxy
  • 针对 GitHub 进行单独配置:
# 设置 github.com 的请求通过本地 7890 端口进行代理
git config --global http.https://github.com.proxy socks5://127.0.0.1:7890
#取消代理
git config --global --unset http.https://github.com.proxy
更新于 阅读次数 阅读次数