忍者ブログ

Fe and Ni

多分まだ生きてます…。
05 2026/06 1 2 3 4 5 67 8 9 10 11 12 1314 15 16 17 18 19 2021 22 23 24 25 26 2728 29 30 07

[PR]

×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

  • 06/13/18:03

git tag まだまだ続く

慌てる時ー!(慌てる時ー!)
リモートリポジトリにpushしたtagが間違っていたとか必要なかったとかした時ー!

# git tag -d hoga   //手元のhogaタグを削除
# git push origin :refs/tags/hoga   //リモートのhogaタグを空のタグ(:)で上書き

…って削除したけどやっぱり必要だったotz


PR

git merge する時に --squash オプションをつける

--squashをつけた方がいい、とチーム内では言われていますが、
今まではよく分かんなかったので怖くて使ってませんでした。(推奨であって強制ではなかったので)

[ --squash をつけた方がよい理由 ]
コミットする時は、「新しいメソッドを実装」「不要なメソッドを削除」「リファクタリング」のように、内容や目的毎に分けた方が良いらしいですね?
(diffが分かりやすくなったり、レビューがしやすくなったりするから?)

とはいえ、レビューやテストが終わってmasterにマージする時は、「XXXメソッドの代わりにYYYメソッドを実装」とひとつにまとめた方が後で分かりやすいでしょう。

[ --squash の使い方 ]
ということで。

 git merge --squash branch_name 

こうすると、マージしたいブランチの変更全てがmasterにも適用され、かつまだcommitしていない状態にできます。
"git status" するとこんな感じで、変更されたファイル一覧が表示されます。

# On branch master                                                          
# Changes to be committed:                                           
#   (use "git reset HEAD <file>..." to unstage)               
#                                                                                           
# modified:   xxx.rb                                                            
# modified:   yyy.rb                                                            
#  ...                                                                                      

この状態で改めて "git commit" しなおせば、
別ブランチでの複数のコミットを、masterでは一つにまとめてしまえるわけですね。


以下、まとめ。
多分こうすればいいんだと思う。
----
(開発用のブランチを作成)
git checkout -b new_branch

(開発してはコミットの繰り返し)
git add
git commit
git add
git commit
...

(コミットとレビューが終わったらmasterにsquashマージしてcommitし直す)
git checkout master
git merge --squash new_branch
git commit

(リモートリポジトリにpush)
git push origin master
 

みんな大好きsftp

リモートからファイルを取ってきたり、逆にローカルからファイルを送ったりってことは多いと思います。
ブラウザやGUI経由(自分の場合はjenkinsやFinder)だと色んな理由で遅い時がありますよね。。
それを解決する方法を知っていればベストなんでしょうが、残念ながら知識がないのでTerminalで取ってきちゃえーとなります。

そんな時に(どんな時だ)使うのがsftpです。本当かなぁ。。
scpでもいいんですが、pathが長くて思い出せなかったりファイル名が長くて思い出せなかったりってなるので、自分はpwdやらcdやらlsできるsftpの方が使いやすいです。

<参考にしたページ> http://cns-guide.sfc.keio.ac.jp/2004/2/6/3.html

基本はsshと同じで、

 sftp user-name@server-address 

.ssh/config に設定されたサーバなら

 sftp host-name 

で入れます。入った後は

リモート側の操作はsshの時と同様に cd,pwd,ls などを使い、
ローカル側の操作は"l"をつけて lcd,lpwd,lls ...のように行います。

肝心のファイル転送は、
リモートからローカルへ:
 get remote/file/name local/path 

 get hoge.txt . ... hoge.txtをローカルのカレントディレクトリへコピー

ローカルからリモートへ:
 put local/file/name remote/path

 put foo.txt .  ...foo.txtをリモートのカレントディレクトリへコピー

ディレクトリごと転送したい時は、"mget"/"mput"という複数ファイル用のコマンドがあるらしいですが、
"-r"オプションを使って
 get -r remote/directory/name local/path 

 get -r remote/directory/name/*.txt local/path

とかでも十分かなと思いました。

タブキーでの入力補完とヒストリー機能がないので、そこはちょっと不便に感じています。
なんとかする方法があるのかしらん?

新世界よりを買うか躊躇するなど

本屋さんで見かける→アニメの制服が可愛い→まさかの上中下巻→会社の同期にアニメの様子を訊く(微妙)→別の同期が買う→感想を聞く(中々)→黒い家(黒い)の著者と判明→鍵のかかった部屋(大野君)の著者と判明[今ココ]

黒い家とかマジ黒かったのでまたあんな怖かったらやだなーとびびってるんですが、
しかし借りられそう(金銭的ハードルが無い)ので読むかも。
問題はその同期と会うチャンスがないこと。


さて、今年ももう終盤ですね。。。

去年の読書リストは74。
今年の読書リストは47(10/22付)。

ファントム・ブレイブやらProject Divaやらゲームばっかりやってたので少ないですね。
とりあえず、目標の年50はいけそうなので、まぁよしとする。

境ホラは年3冊読んでもリスト1で、物語シリーズは1冊/1リストなあたりちょっと変な気もするが、そこらへんがこだわり。
段々場所をとるラノベを買わなくなり、周囲の影響を受けてSFに傾倒しつつあります。

git tag はじめの一歩

便利なので付けすぎて氾濫し過ぎな気もするタグ。
短いと意味分かんないし、あんまり長い名前も使いづらいし。。

一覧表示: git tag 

タグ付け: git tag hoge  ... 今いるところ(HEAD)に対してタグを打てる。

タグ付け(2): git tag hoge commit  ...commitを指定してタグを打てる。

コメント付きタグ付け: git tag hoge -m "hoge-hoge" 

タグ削除: git tag -d hoge 


タグだけpull: git fetch origin -t  もしくは git fetch origin --tags
    (git pull --tags でできるかと思ったけど、できないみたい?)

タグだけpush: git push --tags 


タグ打ってpushしようと思ったら、「"zzz"というtagはrejectだよ!どこからも繋がってないよ!」的なメッセージが出たことがあって、そのときはそのタグを一回削除してからfetchして取り直してからpushしたらできた。

tagsとtagとがあって、ちょっとややこしいですの。
tagだけpushするときはbranchとかremoteとか気にしなくてよくて気楽―。

最後に。
タグが多すぎると目的のタグが見つけられなくて、いつも" | grep xxx"とかやってたのですが、
 git tag -l "xxx*" 
で探せるとな!何これ超便利。

<<< PREV     NEXT >>>
新着記事
(09/25)
(09/06)
(06/10)
(02/28)
(12/26)