Pro Git

Pro Git

🎯 ¿Cansado de los anuncios?
Elimínalos ahora 🚀
blob_id = repo.write("Blob contents", :blob) ① index = repo.index index.read_tree(repo.head.target.tree) index.add(:path => 'newfile.txt', :oid => blob_id) ② sig = { :email => "bob@example.com", :name => "Bob User", :time => Time.now, } commit_id = Rugged::Commit.create(repo, :tree => index.write_tree(repo), ③ :author => sig, :committer => sig, ④ :message => "Add newfile.txt", ⑤ :parents => repo.empty? ? [] : [ repo.head.target ].compact, ⑥ :update_ref => 'HEAD', ⑦ ) commit = repo.lookup(commit_id) ⑧ ① Se crea un nuevo blob, que contiene el contenido de un nuevo archivo. ② Se rellena el index con el árbol de head commit, y añadimos el nuevo archivo a la ruta newfile.txt. ③ Esto crea un nuevo árbol en la ODB, y lo utiliza para un nuevo commit. ④ Utilizamos la misma firma, tanto para los campos del autor como del confirmador. ⑤ El mensaje del commit. ⑥ Al crear un commit, tienes que especificar los nuevos padres del commit. Éste utiliza la punta de HEAD para un padre único. ⑦ Rugged (y Libgit2) pueden actualizar opcionalmente una referencia al hacer un commit. ⑧ El valor de retorno es el hash SHA-1 de un nuevo objeto commit, que luego se puede utilizar para obtener un objeto Commit.

El código en Ruby es bonito y limpio, pero ya que Libgit2 está haciendo el trabajo pesado, este código se ejecutará bastante rápido, también. Si no eres un rubyista, tocamos algunos otros vínculos en Otros Vínculos (Bindings).


👉 Descargar el audiolibro GRATIS en Amazon
Reportar problema / Sugerencias
🧠 Hacer Trivia

eXTReMe Tracker