Git 常用命令总结
-
基本命令
- 生成SSH公钥和私钥,公钥要复制配置到git服务器上的
// 生成SSH密钥 ssh-keygen -o // .pub后缀名为公钥,另外一个为私钥 cat ~/.ssh/id_rsa.pub
- git config 配置提交用户名和用户邮箱
git config --global user.name "aehyok" git config --global user.email "aehyok@163.com" // 配置好后可通过这个来查看 git config -l
- 创建项目后如何提交到仓库
// 创建项目后到指定的项目文件夹中初始化git git init
- 将文件添加到暂存区
// 将添加或修改的文件提交到暂存区 git add . // 将监控已经被add进暂存区的文件,会将被修改的文件再次提交到暂存区 // 或者是 git add -u // 则是git add .和 git add -u 两个命令的集合 // 或者是 git add -A
- 提交到本地仓库(即自己当前电脑的代码仓库)
// 提交到本地仓库 git commit -m ' feat: 初始化项目'
- 设置远程仓库地址(即代码要提交到哪里的服务器)
// 当然也可以使用ssh 链接 git remote add github.origin https://github.com/aehyok/demo.git
- 推送到远程服务器(注意一点,首次推送要设置追踪)
// 设置本地分支追踪远程分支、、、之后就可以直接git push git push --set-upstream origin main
- 修改文件名会忽略大小写,默认都是忽略了,所以修改文件名大小写是无效的
// (查看是否忽略大小写) true则设置了忽略 git config core.ignorecase // 后面加上false则直接可设置不忽略,修改文件名大小写后会生效 git config core.ignorecase false
- 修改文件夹名字大小写的问题
// (修改前先将Test文件夹备份并修改为TestTemp<一个临时文件夹名字而已>, // 然后执行命令 git rm Test // 再将备份文件夹名字修改为需要的文件夹即可 --------------另外一种简单粗暴的方式----------------- // 还是先备份好要删除的文件,然后将文件删除,提交到仓库。 // 完事后将备份的文件复制回来,然后修改文件大小写,再提交即可。
- 是将远程主机的最新内容拉到本地 ,用户在检查了以后决定是否合并到工作本机分支中。
git fetch //更多基本操作 //https://www.cnblogs.com/runnerjack/p/9342362.html
- 同样一个本地仓库可以设置多个远程仓库,然后通过不同的git push github.origin
// 设置个github远程仓库 git remote add github.origin https://github.com/aehyok/demo.git // 设置个gitee远程仓库 git remote add gitee.origin https://github.com/aehyok/demo.git // 推送到github git push github.origin // 推送到gitee git push gitee.origin
- 克隆代码库
// 目前没指定分支,默认为master git clone https://github.com/aehyok/demo.git // 指定分支名称 git clone -b dev https://github.com/aehyok/demo.git
-
分支管理
- 创建分支
// 切换到基础分支 git checkout main // 根据 切换到的main分支,创建dev分支并切换到dev分支 git checkout -b dev
- 查看分支
// 查看本地分支 git branch // 查看本地分支和远程分支,如果不存在需要git fetch一下 git branch -a // 查看远程分支 git branch -r
- 修改分支名称
// 修改当前本地分支的名称 git branch -m develop-lqm // 也可以修改指定的分支 原分支名称 新分支名称 git branch -m develop-lam develop-lqm
- 删除本地分支和删除远程分支
// 先切换到其他分支 git checkout dev1.3.4 // 删除本地分支 git branch -d dev // 如果删除不了,可以进行强制删除 git branch -D dev // 有必要的情况下,删除远程分支但是要谨慎使用 git push origin --delete dev
-
合并代码
- 将某个提交,任何跟仓库所有分支的commit 合并到当前分支
// (正常情况直接合并成功,可能存在重复图需要手动解决) git cherry-pick commitid // 正常情况直接push即可,手动解决冲突需要commit 再进行push git push // 扩展阅读:还可以一起提交commitid-A到commitid-B 之间所有的内容修改 // http://www.ruanyifeng.com/blog/2020/04/git-cherry-pick.html
- 当前分支dev的代码提交push成功,此时想合并到main分支上
// 先切换到main分支 git checkout main // 将dev分支的变更拉取到main分支上来 git merge dev // 合并完成,即可推送到远程服务器 git push -u origin main
-
tag标签
- 添加一个tag,并推送到远程仓库
git tag -a 3.11.3.001 -m "release 3.11.3.001" git push origin 3.11.3.001
- 删除一个tag
git tag -d 3.11.3.001 git push origin :refs/tags/3.11.3.001
- 查看tag
git tag
- 在某个commit上打tag
git tag test_tag c809ddbf83939a89659e51dc2a5fe183af384233 git push origin test_tag //!!!本地tag推送到线上
- 根据tag创建分支
https://www.cnblogs.com/senlinyang/p/9455426.html git branch newbranch 3.11.3.001 // 切换到分支 git checkout newbranch