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