Git命令

一、提交

检查文件状态

git status

提交某一个文件

1、git add -u '文件路径' ( 若要提交全部文件,则执行 git add . )
2、 git commit -m 'aa'
3、git pull
4、git push

提交文件命令

git commit -am '备注'
即 git add . 跟 git commit -m '备注'(修改的文件全部提交)

git add . 撤回(将之前添加到暂存区的内容从暂存区移出到工作区)

git reset HEAD + file路径(可以撤回单个文件)
https://www.cnblogs.com/xy-ouyang/p/12205467.html

git add . 报错:
 warning: LF will be replaced by CRLF in package-lock.json.
The file will have its original line endings in your working directory
warning: LF will be replaced by CRLF in package.json.
The file will have its original line endings in your working directory

解决办法:
git config --global core.autocrlf true
https://www.jianshu.com/p/eb8737547c9a

查看提交记录

gitk

本地忽略

忽略提交
git update-index --assume-unchanged xxx/xx/x/logback.xml
例:git update-index --assume-unchanged src/assets/js/http.js
取消忽略
git update-index --no-assume-unchanged xxx/xx/xlogback.xml
https://blog.csdn.net/qq_34581118/article/details/78437992

忽略提交(.DS_Store文件)

.gitignore文件中加:
*/.DS_Store
.DS_Store
https://yalv.me/mac-rm-ds_store/

二、分支

查看分支

git branch // 查看本地分支

 * dev     // 当前在dev分支(星号表示当前所在分支)
   master

git branch -a // 查看本地远程分支,白色字体为本地分支,红色字体为远程分支

切换分支

git checkout dev // 切换到dev分支

  • 必须把所有修改的文件都提交完成,即 git status 执行为空时,再进行切换。
提交(push)

git push origin dev // 将本地代码提交到远程分支dev上
git push // 提交到当前本地分支,已绑定的远程分支上

  • 要提交到某一分支,最好先切换到该分支,再修改,否则容易发生冲突。

拉取其他分支代码
git pull origin dev (dev为其他分支名)

新建本地分支并绑定远程分支

git checkout -b web_dev // 新建本地分支web_dev,并切换到该分支

  • git pull 报错如下
There is no tracking information for the current branch.
Please specify which branch you want to merge with.
See git-pull(1) for details.
    git pull <remote> <branch>
If you wish to set tracking information for this branch you can do so with:
    git branch --set-upstream-to=origin/<branch> web_dev
  • git push 报错如下
fatal: The upstream branch of your current branch does not match
the name of your current branch.  To push to the upstream branch
on the remote, use
    git push origin HEAD:master
To push to the branch of the same name on the remote, use
    git push origin hotfix-dev
To choose either option permanently, see push.default in 'git help config'.
  • 无论哪种报错,都需要执行以下命令

git branch --set-upstream-to=origin/new_dev new_dev // 本地分支与远程分支建立联系
第一个new_dev为远程分支名(远程得有这个分支),第二个为本地分支名

删除分支
  • 删除本地分支

git branch -D 分支名(*** 需要先切换到其他分支上)

  • 删除远程分支

git push origin --delete 分支名
https://www.cnblogs.com/smallredness/p/11205466.html

  • 批量删除本地分支(模糊匹配,将所有本地分支中包含task的分支,全部删除)

git branch |grep 'task' |xargs git branch -D
http://wjhsh.net/MaiJiangDou-p-9408875.html

修改分支名称
  • 本地分支

git branch -m oldName newName
https://blog.csdn.net/qq_37982823/article/details/87370493

  • 远程分支

git branch -m oldName newName
git push --delete origin oldName
git push origin newName // 新分支推上去
git branch --set-upstream-to origin newName // 本地与远程关联
https://www.cnblogs.com/huting-front/p/12106578.html

  • git push失败,报错
git push
fatal: The upstream branch of your current branch does not match
the name of your current branch.  To push to the upstream branch
on the remote, use

    git push origin HEAD:master

To push to the branch of the same name on the remote, use

    git push origin HEAD

To choose either option permanently, see push.default in 'git help config'.
  • 原因:本地分支是从远程分支拉取的,在执行git push命令时,不知道应该与远程哪个分支进行同步
  • 解决办法:重新指定与远程同名的分支(执行后,可直接用git push提交)
git push -u origin 分支名

https://blog.csdn.net/ysl19910806/article/details/89497620

三、代码修改(需谨慎)

放弃本地修改(所有文件都回到修改之前)

git reset --hard HEAD

远程分支代码覆盖本地(远程代码替换本地代码)

git fetch --all
git reset --hard origin/master (这里master要修改为对应的分支名)
git pull

https://blog.csdn.net/zoulonglong/article/details/79562922

本地代码恢复到某次提交

git reset --hard commitId
https://blog.csdn.net/qq_31648761/article/details/80983481

强制将本地代码覆盖远程代码

git push -f
https://blog.csdn.net/lcr_happy/article/details/113824699

将某个分支的代码完全覆盖另一个分支
  • 将test分支上的代码完全覆盖dev分支
git checkout dev // 切换到dev分支
git reset --hard origin/test // dev分支上的代码就完全被test分支上的代码覆盖(本地分支)
git push -f // 将本地分支强行推到远程分支

https://www.cnblogs.com/justdoyou/p/11389623.html

四、git 相关操作

git下载

https://git-scm.com/download/win

输入用户名密码认证失败(windows git身份验证失败清除密码缓存)

git config --system --unset credential.helper
之后再进行git操作时,弹出用户名密码窗口,输入即可
https://blog.csdn.net/mrhaoxiaojun/article/details/90482125

代码上传到github

https://www.cnblogs.com/ximiaomiao/p/7140456.html

代码上传到码云

五、新增 20200727

一、git 基于某个分支,创建分支

1、拷贝源代码
git clone git@git地址
cd 项目目录
2、根据已有分支创建新的分支
git checkout -b yourbranchname origin/oldbranchname
3、推送到git

git push origin yourbranchname
参考:
https://blog.csdn.net/weixin_34319374/article/details/86004265

二、本地分支绑定远程分支错误(重新执行一次,绑定另一分支即可)

若不小心建立关联错误,如执行如下
git branch --set-upstream-to=origin/other-branch
每次提交会提交到other-branch分支
想恢复则重新执行
git branch --set-upstream-to=origin/test2 // 重新执行一次即可
https://blog.csdn.net/second_boy/article/details/50832725

六、新增 2020.12.09

一、本地开发分支,用错了
  • 本地开发用了master分支(与远程master分支关联)
    想提交到远程的feature上,而不提交到master上

git add .
git commit -m 'debug' // 不push就不会推送到远程master上
git log // 查看commit记录,保存这次commit的id
git checkout feature // 切换到想提交的分支feature上
git cherry-pick commitId(master上commit的id)// 将这次commit的内容拉到feature分支上
git push // 提交到远程的feature上
git branch -D master // 删掉本地的master分支
git checkout master // 新建master分支,与远程master分支的代码一致,就将上次的commit给删啦

二、本地看不到新建的远程分支

git fetch
https://www.cnblogs.com/jiu0821/p/9796267.html
git fetch -p(远程分支删除,可以更新)

三、代码合并(merge)
  • master(正式分支),feature(开发分支)

git checkout master // 切换到正式
git merge feature // 合并开发分支上的代码
git push // 提交上去

四、git rebase 回退

git rebase --abort
https://blog.csdn.net/orangefly0214/article/details/81712993

五、git tag(给某次上线提交打标签,区分提交记录,方便代码回退)

git checkout master // 上线分支
git merge feature // 合并开发分支
git tag v20210121.1 // 打标签
git push origin v20210121.1 // 提交tag到远程
git push // 提交代码

  • 代码回退到版本v20210121.1

git checkout v20210121.1

  • 删除tag

删除本地tag
git tag -d v20210426.1
删除远程tag
git push origin :refs/tags/v20210426.1
https://blog.csdn.net/i_dont_know_a/article/details/90202674
https://www.cnblogs.com/pansidong/p/7773873.html

六、git clone报错
warning: remote HEAD refers to nonexistent ref, unable to checkout.
  • 原因:.git目录下.git/refs/heads不存在HEAD指向的文件
  • 解决办法:

git branch -a //输出 remotes/origin/branch_qc_origin
git checkout remotes/origin/branch_qc_origin // checkout的是git branch -a输出的内容
git checkout -b remotes/origin/branch_qc_origin // 创建分支
git branch -m remotes/origin/branch_qc_origin master //重命名分支叫master
https://blog.csdn.net/whu_zhangmin/article/details/12040493

七、强制本地代码覆盖远程代码(谨慎)

git push -f
https://blog.csdn.net/lcr_happy/article/details/113824699

八、切换回某次commit(谨慎)

git reset --hard commitId
https://blog.csdn.net/luxiaoruo/article/details/106637291

九、git merge,交换文件.MERGE_MSG.swp已经存在的问题
  • 原因:非正常退出情况下, VIM 不会删除 ,.swp 文件会作为文件编辑状态的内容备份
  • 解决办法:删掉该文件

七、其他命令

查看目录:

ls

删除某个文件

rm -rf 文件路径

git init 撤回

rm -rf .git
git init后会生成一个.git 的文件夹,只要删除这个文件夹就好了。

查看vue打包后各个文件大小 --report

npm run build --report
https://blog.csdn.net/yunchong_zhao/article/details/104374295/

git branch命令 了解

https://www.cnblogs.com/jianguo221/p/12574645.html

Mac下查看node等的安装路径(命令行)

在命令行中输入命令
which node
结果如下:
/usr/local/bin/node
https://blog.csdn.net/qq_33833327/article/details/78181427

git报错

git config --global user.name "yourName" //注意,--和global之间没有空格
git config --global user.email "yourName@gmail.com"

更新远程分支(远程有删改)

git remote update origin -p

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 214,444评论 6 496
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,421评论 3 389
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 160,036评论 0 349
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,363评论 1 288
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,460评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,502评论 1 292
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,511评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,280评论 0 270
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,736评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,014评论 2 328
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,190评论 1 342
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,848评论 5 338
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,531评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,159评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,411评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,067评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,078评论 2 352