20190215のGitに関する記事は5件です。

直前のgit commitだけを取りけす

git管理していなかったプロジェクトをとりあえずgit add、commitして
GitGubにPushしようとしたら
以下のようにファイルが大きすぎるよ・・と・・

$ git push origin multi
Password: 
Counting objects: 11177, done.
Delta compression using up to 2 threads.
Compressing objects: 100% (10154/10154), done.
Writing objects: 100% (11176/11176), 367.56 MiB | 15.70 MiB/s, done.
Total 11176 (delta 6210), reused 2517 (delta 644)
remote: Resolving deltas: 100% (6210/6210), done.
remote: warning: File aaaaaa.zip is 82.28 MB; this is larger than GitHub's recommended maximum file size of 50.00 MB
remote: error: GH001: Large files detected. You may want to try Git Large File Storage - https://git-lfs.github.com.
remote: error: Trace: 858ff829cfaf2823d2624b5d89ec0fed
remote: error: See http://git.io/iEPt8g for more information.
remote: error: File bbbbbb.log is 135.68 MB; this exceeds GitHub's file size limit of 100.00 MB
remote: error: File cccccc.log.gz is 204.96 MB; this exceeds GitHub's file size limit of 100.00 MB
remote: error: File dddddd.log is 325.67 MB; this exceeds GitHub's file size limit of 100.00 MB

気を使ってたつもりでも抜けてたようでした・・

ということで、該当ファイルをgit管理から外したいわけですが
git rm --cached 該当ファイル
git commit -m '大きいファイルは外しました'
としても、gitというものは履歴管理してるものなので
うまくいくわけはありません。

commitを消してHEADを戻してからrmしないといけないのですが
単に
git reset HEAD^
や、ましてや
git reset --head HEAD^
をしてしまうと、苦労してgit addした作業が無駄になります。
ので、

git reset --soft HEAD^

とすれば、直前のgit commit -m 〜 だけを取り消すことになり、
git statusを見てもステージにaddされたままになっているかとおもいます。

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

gitコマンドを打つと、warning: unable to access '/.config/git/attributes': Permission deniedのエラー。

gitコマンドを打つと、warning: unable to access '/.config/git/attributes': Permission denied

ターミナルを立ち上げて、gitコマンドを打つと、

$ git push origin create-tables
warning: unable to access '/Users/XXXXXXXXXXXXXXX/.config/git/attributes': Permission denied
$ git status
warning: unable to access '/Users/XXXXXXXXXXXXXXX/.config/git/ignore': Permission denied

まずファイルの所有者を確認する。

ホームディレクトリへ移動
cd ~/
ファイルの所有者一覧を表示
ls -al
drwx------    3 root     96  2 14 17:39 .config

.configの部分がrootになっている。

root=管理者

一般ユーザーじゃないのがおかしい。

多分ターミナルにブランチ名を表示させる時に色々といじったので、それが関係していたのかな、、と思う。

所有者を一般ユーザーに変更
sudo chown -R $(whoami) .config

すると警告が出なくなりました!

参考
https://stackoverflow.com/questions/27150926/unable-to-access-git-attributes/27151021#27151021

https://eng-entrance.com/linux-root

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

Atomパッケージの公開を撤回&色々無かったことにする

久々にAtomのパッケージを更新しようとしたら手間取ったので、やり方を記しておきます。
以前した投稿パッケージ(Atomでパッケージを公開・更新する)を例にやっていきます。

参考:Atomパッケージをアンパブリッシュする | To Be Decided

不完全なままcommit&push&apm publishしてしまった!!!!!!!!!

(パッケージを更新して再インストールしようとしたら、出来なくなってたので確定スリーアウト状態に)

atom.io
スクリーンショット 2019-02-14 16.48.46.png
github
スクリーンショット 2019-02-14 16.35.48.png

公開中のパッケージのバージョンを下げたい!!!
最新のコミット2つ(apm publishの自動コミットと己のコミット)を無かったことにしたい!!!!!!

環境

$ sw_vers
ProductName:    Mac OS X
ProductVersion: 10.14.2
BuildVersion:   18C54
$ atom -v
Atom    : 1.34.0
Electron: 2.0.16
Chrome  : 61.0.3163.100
Node    : 8.9.3

作業手順

パッケージの公開を撤回する

# apm unpublish (name)@(version) 
$ apm unpublish latex-itemizer@0.1.0
Are you sure you want to unpublish 'latex-itemizer@0.1.0'? (no) yes # ここで入力
Unpublishing latex-itemizer@0.1.0 ✓

スクリーンショット 2019-02-14 16.47.44.png

これで指定したバージョンは非公開になる。

作業場所を一回綺麗に

$ cd /Users/aaa/.atom/packages
$ apm uninstall latex-itemizer
Uninstalling latex-itemizer 
$ git clone https://github.com/horyu/latex-itemizer.git
Cloning into 'latex-itemizer'...
remote: Enumerating objects: 7, done.
remote: Counting objects: 100% (7/7), done.
remote: Compressing objects: 100% (5/5), done.
remote: Total 38 (delta 2), reused 7 (delta 2), pack-reused 31
Unpacking objects: 100% (38/38), done.
$ cd latex-itemizer/
# 状態を確認
$ git log
commit f1f41164d169082787b26e60bcf0cb6bdff0762f (HEAD -> master, tag: v0.1.0, origin/master, origin/HEAD)
Author: horyu <horyu@users.noreply.github.com>
Date:   Thu Feb 14 16:09:06 2019 +0900

    Prepare 0.1.0 release

commit b9a06bbd2956ab7ee745b2466c5cfdb24ce8f798
Author: horyu <horyu@users.noreply.github.com>
Date:   Thu Feb 14 16:01:42 2019 +0900

    update dependencies

commit 7b54d3ea62081ba6ccbb36152d0bc0c677d4bfab
Author: horyu <horyu@users.noreply.github.com>
Date:   Thu Feb 14 14:13:30 2019 +0900

    tweak newline-itemize

commitを無かったことにする(リモートも)

## 2個戻したいので HEAD~~
$ git reset --hard HEAD~~
HEAD is now at 7b54d3e tweak newline-itemize
$ git log
commit 7b54d3ea62081ba6ccbb36152d0bc0c677d4bfab (HEAD -> master, origin/master, origin/HEAD)
Author: horyu <horyu@users.noreply.github.com>
Date:   Thu Feb 14 14:13:30 2019 +0900

    tweak newline-itemize
# (略)
# リモートに反映させる
$ git push -f
Total 0 (delta 0), reused 0 (delta 0)
To https://github.com/horyu/latex-itemizer.git
 + f1f4116...7b54d3e master -> master (forced update)

スクリーンショット 2019-02-14 16.44.30.png

tagを削除する

スクリーンショット 2019-02-14 17.00.35.png

$ git tag
v0.0.1
v0.0.2
v0.1.0
# ローカルのタグを削除 git tag -d (tagname)
$ git tag -d v0.1.0
Deleted tag 'v0.1.0' (was 4314c61)
# タグの更新をリモートに反映 git push origin :(tagname)
$ git push origin :v0.1.0
To https://github.com/horyu/latex-itemizer.git
 - [deleted]         v0.1.0

スクリーンショット 2019-02-14 17.10.19.png

以上

注意

最初の参考ページの最後に書かれているが、Atomのパッケージは~/.atom/.apm/latex-itemizer/0.1.0/package.tgzのようにキャッシュされている。

  • パッケージをunpublishする前に、あるユーザーがインストールしてしまっていた
  • 作者がパッケージをunpublishしたのと同じバージョンでpublishした

という場合に、あるユーザーはキャッシュを削除しなければ、新しくpublishされた方にパッケージを更新できなくなる。(なので、同じバージョンは使わず、バージョンは上げていきましょう)

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

Your edited hunk does not apply. Edit again (saying "no" discards!)

問題

git add -p したときに edit hunk すると以下のメッセージが出る。

Your edited hunk does not apply. Edit again (saying "no" discards!)

対応

git --version すると Apple Git が入っていたので brew install git したら解決。

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

Your edited hunk does not apply. Edit again

問題

git add -p したときに edit hunk すると以下のメッセージが出る。

Your edited hunk does not apply. Edit again (saying "no" discards!)

対応

git --version すると Apple Git が入っていたので brew install git したら解決。

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む