git常用命令,(长期更新)
git --version #查询git版本号
git config --global user.name '用户名' #定义用户名
git config --global user.email '邮箱‘'' #定义邮箱
git config --list #显示配置信息表
q 结束任务
---------------------------------------
git init #把文件夹变成git管理的仓库
git status #查看当前仓库的状态
git add 文件名 #把一个文件添加到暂存区
git add . #把所有文件添加到暂存区
git commit -m 提交说明 #把暂存区中的素有文件提交给本地仓库
git log #查看当前版本,以及之前的所有版本
git log 版本号 # 查询指定版本号信息
git log --oneline # 已简介得形式显示版本信息
git reflog #显示所有版本,以及所有恢复记录
git reset --hard 版本id #代码回滚到某一个版本
git revert 版本号 # 回滚指定版本之前
git tag # 查看别名列表
git tag 别名 版本号 # 给一个提交添加别名
git tag -d 别名 # 删除一个别名
# 创建别名后 在创建新分支时可以用别名名称作为分支名称,就会从当前这个别名的提交创建新的分支
git log 别名
-------------------分支---------------------
1. 查看分支
//查看当前所在分支
git branch -vv
// 查看本地分支
git branch
// 查看所有分支(包括本地和远程分支)
git branch -a
2. 创建本地分支
// 2.1 远程不存在develop分支
git branch develop
// (创建并切换)
git checkout -b develop
// 2.1 远程存在develop分支
git branch develop origin/develop
3. 切换分支
// 切换到develop分支
git checkout develop
4. 推送本地分支到远程
// 4.1 远程不存在develop分支(第二个develop分支是远程分支的名字)
git push origin develop:develop
// 4.2 远程存在develop分支,但和本地develop分支没有关联(前提是:已经切换到develop下)
git push -u origin/develop
// 4.3 远程存在develop分支,并且和本地develop分支已关联(前提是:已经切换到develop下)
git push origin develop
5. 删除分支
// 5.1 删除本地分支
git branch -d develop
// 5.2 删除远程分支
// 删除远程develop分支(第二个命令表示:推送一个空的分支到远程develop分支)
git branch -r -d origin/develop
git push origin :develop
// 如果要删除master分支,需要在gitserver上将master设置为默认分支的选项取消(选择其他分支作为默认分支)
git branch -r -d origin/master
git push origin :master
// 删除远程分支
git push origin --delete 分支名称
6. 合并分支
// 将develop本地分支的内容合并到本地master分支(需要先切换到master分支)
git merge develop
-------------本地仓库推送给网络仓库----------------------
#把仓库的网络连接命名为origin
git remote add origin 仓库地址
#把本地仓库推送给网络仓库的master分支
# origin 上面的假名
git push -u origin master
# 推送一个远程不存在的分支
git push --set-upstream origin 分支名称
(通常在执行git push的时候如果远程不存在这个分支的话git会提示你执行这段命令,直接复制执行就可以了)
--------------把网络仓库的内容拉回本地-----------------------------------
#克隆网路仓库的项目
git clone 仓库地址
#拉取团队修改的部分
git pull 远程仓库地址
#拉去远程分支
git pull origin 分支名称
#如果已经添加origin的地址发生了变化,可以先执行以下命令删除已存在的origin
git remote rm origin
----------------------git设置默认分支--------------------------
# 如果需要在初始化仓库时设置默认分支为main ,
git init --initial-branch=main
# 重命名远程的master分支为main
git push origin :master
git push origin main
# 设置远程仓库的默认分支为main
git push --delete origin master
git push --set-upstream origin main
# git的默认分支为master, 如果你是想修改整个git的默认分支名称,则需要修改git的配置
git config --global init.defaultBranch main
-----------------git提交之后代码不见的寻找方式------------------------------
起因:commit完成之后代码,本地代码不见,原因暂时不明
解决思路使用git stash (该命令是隐藏工作区变更的代码)
git stash list 查看暂存区所有暂存内容
git stash show 可查看某一暂存纪录所修改的文件名称
git stash show -p stash@{0} 可查看暂存区域修改的细节
git stash pop stash@{0} 将暂存某条纪录弹出,恢复到代码中
git stash apply stash@{0} 应用暂存区
// 直接撤回 git stash pop 0
-------------------------------从上面的问题中总结了一个开发小妙招------------------------------------
# 当多个分支同时开发时,如果需要切换分支进行修改。我以往的方法是先把当前分支进行一次提交,在切换分支。现在就不用了,直接git stash 隐藏工作区的更改,执行后所以修改都不在了,就可以切换分支了,当在切换回来要继续开发时,执行 git stash pop 0 退回
# 隐藏工作区应该也是有多个版本的 所以测回的时候应该也是要对应版本
# 解决git会自动忽略文件名修改大小写的问题(比如一开始文件名是大写,提交后又改为小写,这样git就检测不到修改)
解决方法:
执行 git config core.ignorecase 查看本地仓库git忽略大小写是打开还是关闭。
false:表示关闭忽略大小,true:表示开启忽略大小写
执行 git config core.ignorecase false 可以解决这个问题
但是这种容易导致远程仓库大写小写都进行保留
但是这种方式容易导致远程存在两个文件,大写和小写都会存在,当有新人clone项目时拉下来的只有首次提交的文件,容易导致项目启动不了或者引入报错
----------------------------忽略已经提交的文件-------------------------------
# 先pull远程代码
git pull
# 在删除本地项目目录的缓存 (不要怕,删就完了,没得事)
git rm -r --cached .
# 然后编辑gitignore,将需要忽略的添加进去
# 在然后就可以走正常提交流程了
-------------------------查看和修改远程仓库URL地址及添加多个origin--------------------------
git remote -v
# 或者
git remote show origin
# 添加一个origin
git remote add origin2 远程地址
# 推送到远程
git push -u origin2 master
# 后续推送代码和拉取代码都要加上前缀
git pull origin2
git push origin2
# 修改origin地址
git remote set-url origin "地址"
# 或者
git config remote.origin.url "地址"
# 删除一个origin
git remote rm origin2
-------------------- 生成ssh公钥,配置到仓库管理里面,拉代码就不用输入账号密码了------------------------
ssh-keygen -t RSA -b 4096 (一直回车)
# ssh-keygen 生成公钥的意思
# -t rsa 使用rsa算法
# -b 4096 公钥的大小 4096个字节
# 查看公钥 公钥创建之后会显示公钥的所在目录
cat /root/.ssh/id_rsa.pub
# 将公钥配置到git上,一个账号可以配置公钥,一个项目也可以配置公钥。
# 这里已gitee的单个项目配置为例(也可以全局配置):打开项目/管理/部署公钥管理/添加公钥。 其他平台也差不多 ,全局配置:打开设置/ssh公钥。这个配置不止能服务器上用,在windos电脑的git也一样能用
# 然后在服务器上克隆代码,先cd 进入项目文件夹
git clone ssh克隆地址 (注意:必须用ssh拉取地址)
你又白嫖,快点赞,(顺便推广一下我个人得小程序,嘿嘿,wx小程序搜索 :e小明 头像是灰太狼得就是了)