git常用命令

291 阅读6分钟

基本操作

git 本地给远程仓库创建分支 三步法 **

git branch dev   1:本地创建分支dev

git push origin dev   2:下面是把本地分支提交到远程仓库

git branch –a  3:查看一下远程仓库有几个分支

克隆远程仓库指定分支,然后 会自动 把远程仓库指定分支 克隆在本地,同样克隆后本地只有这一个分支

git clone -b <指定分支名> <远程仓库地址>

如果远程新建了一个分支,本地没有该分支,可以利用 git checkout --track origin/branch_name,这时本地会新建一个分支名叫 branch_name ,会自动跟踪远程的同名分支 branch_name

git checkout --track origin/branch_name

如果本地新建了一个分支 branch_name,但是在远程没有。这时候 push 和 pull 指令就无法确定该跟踪谁,一般来说我们都会使其跟踪远程同名分支,所以可以利用 git push --set-upstream origin branch_name ,这样就可以自动在远程创建一个 branch_name 分支,然后本地分支会 track 该分支。后面再对该分支使用 push 和 pull 就自动同步

git push --set-upstream origin branch_name

git 配置全局用户名、邮箱,用于git本地仓库记录该代码作者的信息

git config --global user.name neohan

git 配置全局用户名、邮箱,用于git本地仓库记录该代码作者的信息

git config --global user.email <neohan666@qq.com>

.gitignore添加忽略文件失效、不起作用的办法

.gitignore 只对未跟踪的文件起作用!已跟踪的文件是指那些被纳入了版本控制的文件,在上一次提交中有它们的记录。那么未跟踪文件就是指那些从没提交过的文件

// 1. 取消文件跟踪

git rm 或者 git rm --cached

git rm : 同时从工作区和索引中删除文件。即本地的文件也被删除了。

git rm --cached:从索引中删除文件,但是本地文件还存在, 只是不希望这个文件被版本控制。

这里我使用第二个,具体用法就是 git rm --cached -r dist

-r 的意思是递归处理,如果不加 -r的话,会报错

如果取消某个文件的跟踪,可以不用 -r 直接 git rm --cached dist/index.less

// 2. 把 gitignore 提交上去

git add .  
git commit -m ‘修改gitignore’  
git push  
以后本地dist目录下文件再变的话,也不会被跟踪到了,其他小伙伴,只需git pull 一下就可以,注意:远程的dist也被删掉了

// 3. 如果不想删除远程例如page.json文件又想忽略本地文件:

可以在本地复制page.json,重命名为page_back.json, 提交  
其他小伙伴拉下来代码的时候,去掉_back即可使用

npm将全局安装的第三方包,安装到自己电脑的哪里了

npm root -g

git提交代码绕过语法检测

解决方法有两种:

1、简单粗暴,删除掉pre-commit钩子

进入项目的.git文件夹(隐藏文件),根据路径 ./git/hooks/pre-commit 找到对应的pre-commit文件,直接删除。

2、使用--no -verify跳过检查。

 git commit -m '提交信息' --no-verify

1.远程拉取分支

git init
git remote add origin gitlab.os.adc.com/heytap-mall…
git fetch origin develop
git checkout -b dev origin/dev
git pull origin develop

2.配置

git config --global user.name "chengjiaqi"
git config --global user.email "917080289@qq.com"
git config --list

3.远程拉取覆盖本地

git fetch --all
git reset --hard origin/dev

git checkout [file]
git reset [file]

4.拉取新分支

git checkout -b feature/codereview_20210825 origin/feature/codereview_20210825
git pull origin feature/codereview_20210825
git push origin HEAD:feature/codereview_20210825

5.本地创建分支

git checkout master
git pull origin master
git checkout -b dev-20210915
git push origin dev-20210915 // 把新建的分支push到远端
git branch --set-upstream-to=origin/dev-20210915 // 关联
git pull origin dev-20210915

6.git commit报错

git commit -m'场景建模编辑页-操作样式右侧被覆盖' --no-verify

7.删除分支

 git branch -d dev20181018    // 删除本地分支

 git branch -D dev20181018  //  如果删除不了可以强制删除

 git push origin --delete dev20181018 //  删除远程分支

8.撤销commit操作

   git log

   git reset --soft HEAD^  // 仅仅撤销commit ,保留add

   git reset --hard 9782b748bae84236c115c84b297260df7324a123

10.修改git源

  git remote -v

  git remote set-url origin git.lvya.org/sy-fe/admin…

  git remote set-url origin git.lvya.org/sy-fe/m.git

11.分支结构

  master: 主分支,生产环境源码,由pre合并

  pre:预发分支,预发环境源码,由master创建,feat、fix等直接合并

  test:测试分支,测试环境源码,最初由master创建,feat、fix等直接合并

  dev:研发分支,研发环境源码,最初由master创建,feat、fix等直接合并

12.错误汇总

git clone -b <指定分支名> <远程仓库地址> 
克隆远程仓库指定分支,然后会自动把远程仓库指定分支克隆在本地,同样克隆后本地只有这一个分支

git config --global user.name neohan  
git 配置全局用户名、邮箱,用于git本地仓库记录该代码作者的信息

git config --global user.email neohan666@qq.com  
git 配置全局用户名、邮箱,用于git本地仓库记录该代码作者的信息

ssh-keygen -t rsa    git 配置ssh

git 配置全局字符集编码,防止中文commit信息乱码

git config --global i18n.commitencoding utf-8

git config --global i18n.logoutputencoding utf-8

export LESSCHARSET=utf-8

git 配置全局不自动转换换行符,(解决windows和max系统的默认换行符不一致问题)

git config --global core.autocrlf false

git 设置能检测文件名大小写,(在需要配置的项目根目录下运行该命令)

git config core.ignorecase false

12.错误汇总

 (1)git commit 时,报错"scope may not be empty [scope-empty]"

          原因:git commit -m comment 不规范,规范示例: git commit -m"feat(modeA): 枚举&评分字段"

13.git修改本地分支及远程分支名

  • 1.修改本地分支名
git branch -m old_branch new_branch #本地分支重命名
  • 2.修改远程分支名

方法一、

git push origin :old_branch #删除远程仓库中的旧分支
//或 git push --delete origin oldName

git push --set-upstream origin new_branch #修改远程仓库中的分支为新名称,同时本地分支与远程分支绑定

方法二、

git push origin :old_branch new_branch //删除远程分支,并关联本地新分支

14.git查看 远程仓库 是否有某个分支

// 这将列出远程仓库的所有分支和标签
git ls-remote

// 如果你想检查特定的分支,可以使用
git ls-remote <remote-name> refs/heads/<branch-name>
// 例如:
git ls-remote origin refs/heads/远程分支名字