루비로 Github의add~push 효율화 명령을 만듭니다.

5572 단어 GitHubRuby

앞말


Github는 무성한 풀로 자신의 활동 상황을 표현한다.
실제로 디렉터리를 변경합니다.push 전에 다음 세 개의 명령을 사용했습니다.
// Githubに連携しているディレクトリ内
// originに自作のリポジトリが登録されています.
$ git add -A
$ git commit -m "add icons"
$ git push origin master
이 일련의 절차, 나는 내가 자신의 동력을 유지할 수 있다고 생각한다. 무성한 풀, 공사가 많다!!나는 부지런히 미는 것이 좋다고 생각해서 공정을 줄이고 싶다.

실시


기능으로서
// Githubに連携しているディレクトリ内
// originに自作のリポジトリが登録されています.
$ push_seq -A add icon
상술한 명령으로 방금 세 개의 명령을 자동으로 진행한다.-A은(는) 옵션으로 지정됩니다.git addadd_icon의 평론문입니다.
설치 명령은 다음과 같습니다.
~bin/push_seq
#!/usr/bin/env ruby
require 'open3'
require 'shellwords'

add_opt = ARGV[0]
com_phrase = ARGV[1..-1].shelljoin                                                                              
add_opt = '-A' if add_opt.nil?
com_phrase = 'no_comment' if com_phrase.nil?

out, err, status = Open3.capture3("git remote -v")
out.split("\n").each do |line|
  if m = line.match(/^origin\s+git@(.+) \(push\)$/)
    puts m[1]
    system("git add #{add_opt}")
    system("git commit -m #{Shellwords.escape(com_phrase)}")
    system("git push origin master")
  else
    puts "Don't find origin branch."
  end
end 
간단히 설명하다.git commit -madd_opt는 각각add시 옵션과commit시 주석에 해당합니다. 각각의 매개 변수가 지정되지 않으면 com_phrase-A를 대입합니다.no_comment 실행Open3, Github에 등록된 지점?이후 이 지점에 origin에 대응하는 것이 있는지 확인한 후 3개의 명령을 실행합니다.
  • 두 가지 주의사항이 있습니다.

  • commit 시 논평에 사용되는 두 번째 파라미터는 공백이 있어서는 안 됩니다. @sakuro 씨가 해결했다고 지적했습니다.
  • branch에 대응하는push를 진행할 수 없습니다.
  • 솔루션
  • 두 번째 매개변수는 _(밑줄) 등을 공백 대신 사용합니다.
  • 코드 안에 세 번째 파라미터 등을 준비하여push시 사용하면 된다.
  • (경품) 내 환경에서 자제 지령의 이동 방법


    나는 Mac을 사용하고 있다.
    자체 제작 명령을 git remote -v 에 넣습니다.
    terminal의 케이스는fish입니다.
    자체 제작 명령은 fish 설정 파일~/bin에 ailias로 Path를 기록합니다.
    ~/.config/fish/config.fish
    set PATH /usr/local/bin $PATH
    alias push_seq '~/bin/push_seq'
    
    이렇게 하면 쓸 수 있어!

    끝날 때


    매번 무슨 생각이 있으면 바로잡아 주십시오.
    당신의 지적을 받을 수 있으니, 저도 적지 않은 이익을 얻었습니다.

    좋은 웹페이지 즐겨찾기