oliverdavies.uk/content/node.d1a650c6-fd8f-4509-801b-10c14f10344e.json

91 lines
5.9 KiB
JSON
Raw Normal View History

2025-05-11 07:15:45 +01:00
{
"uuid": [
{
2025-05-11 09:40:11 +01:00
"value": "d1a650c6-fd8f-4509-801b-10c14f10344e"
2025-05-11 07:15:45 +01:00
}
],
"langcode": [
{
"value": "en"
}
],
"type": [
{
"target_id": "daily_email",
"target_type": "node_type",
"target_uuid": "8bde1f2f-eef9-4f2d-ae9c-96921f8193d7"
}
],
"revision_timestamp": [
{
2025-05-11 09:40:11 +01:00
"value": "2025-05-11T09:00:55+00:00"
2025-05-11 07:15:45 +01:00
}
],
"revision_uid": [
{
"target_type": "user",
"target_uuid": "b8966985-d4b2-42a7-a319-2e94ccfbb849"
}
],
"revision_log": [],
"status": [
{
"value": true
}
],
"uid": [
{
"target_type": "user",
"target_uuid": "b8966985-d4b2-42a7-a319-2e94ccfbb849"
}
],
"title": [
{
"value": "Useful Git configuration"
}
],
"created": [
{
"value": "2022-09-19T00:00:00+00:00"
}
],
"changed": [
{
2025-05-11 09:40:11 +01:00
"value": "2025-05-11T09:00:55+00:00"
2025-05-11 07:15:45 +01:00
}
],
"promote": [
{
"value": false
}
],
"sticky": [
{
"value": false
}
],
"default_langcode": [
{
"value": true
}
],
"revision_translation_affected": [
{
"value": true
}
],
"path": [
{
"alias": "\/daily\/2022\/09\/19\/useful-git-configuration",
"langcode": "en"
}
],
"body": [
{
"value": "\n <p>Here are some snippets from my Git configuration file.<\/p>\n\n<p>These days, I use a much simpler workflow and configuration since doing more trunk-based development, but in general, I rebase instead of merging by default, and prefer to use fast-forward merges that doesn't create a merge commit.<\/p>\n\n<p><code>branch.autosetuprebase = always<\/code> and <code>pull.rebase = true<\/code> configure Git to always rebase instead of pull. It does this for all branches, though I might override this for <code>main<\/code> branches.<\/p>\n\n<p><code>pull.ff = only<\/code> and <code>merge.ff = only<\/code> prevents creating a merge commit and will prevent the merge if it would create one. If I needed to override this, I could by using the <code>--no-ff<\/code> option on the command line.<\/p>\n\n<p>I use <code>checkout.defaultRemote = origin<\/code> to ensure that the <code>origin<\/code> remote is used if I have multiple remotes configured, and <code>push.default = upstream<\/code> to set the default remote to push to.<\/p>\n\n<p><code>merge.autoStash<\/code> allows for running merges on a dirty worktree by automatically creating and re-applying a stash of the changes, and <code>fetch.prune<\/code> will automatically prune branches on fetch - keeping things tidy.<\/p>\n\n<p>I also have and use a number of aliases.<\/p>\n\n<p>Some like <code>pl = pull<\/code> and <code>ps = push<\/code> are shorter versions of existing commands, and some like <code>aa = add --all<\/code>, <code>fixup = commit --fixup<\/code> and some additional arguments to commands.<\/p>\n\n<p>I also have some like <code>current-branch = rev-parse --abbrev-ref HEAD<\/code> and <code>worktrees = worktree list<\/code> which add simple additional commands, and some like <code>repush = !git pull --rebase &amp;&amp; git push<\/code> which use execute shell commands to execute more complex commands or combine multiple commands.<\/p>\n\n<p>This is a snapshot of my Git configuration. The <a href=\"https:\/\/github.com\/opdavies\/dotfiles\/blob\/7e935b12c09358adad480a566988b9cbfaf5999e\/roles\/git\/files\/.gitconfig\">full version is on GitHub<\/a>.<\/p>\n\n ",
"format": "full_html",
"processed": "\n <p>Here are some snippets from my Git configuration file.<\/p>\n\n<p>These days, I use a much simpler workflow and configuration since doing more trunk-based development, but in general, I rebase instead of merging by default, and prefer to use fast-forward merges that doesn't create a merge commit.<\/p>\n\n<p><code>branch.autosetuprebase = always<\/code> and <code>pull.rebase = true<\/code> configure Git to always rebase instead of pull. It does this for all branches, though I might override this for <code>main<\/code> branches.<\/p>\n\n<p><code>pull.ff = only<\/code> and <code>merge.ff = only<\/code> prevents creating a merge commit and will prevent the merge if it would create one. If I needed to override this, I could by using the <code>--no-ff<\/code> option on the command line.<\/p>\n\n<p>I use <code>checkout.defaultRemote = origin<\/code> to ensure that the <code>origin<\/code> remote is used if I have multiple remotes configured, and <code>push.default = upstream<\/code> to set the default remote to push to.<\/p>\n\n<p><code>merge.autoStash<\/code> allows for running merges on a dirty worktree by automatically creating and re-applying a stash of the changes, and <code>fetch.prune<\/code> will automatically prune branches on fetch - keeping things tidy.<\/p>\n\n<p>I also have and use a number of aliases.<\/p>\n\n<p>Some like <code>pl = pull<\/code> and <code>ps = push<\/code> are shorter versions of existing commands, and some like <code>aa = add --all<\/code>, <code>fixup = commit --fixup<\/code> and some additional arguments to commands.<\/p>\n\n<p>I also have some like <code>current-branch = rev-parse --abbrev-ref HEAD<\/code> and <code>worktrees = worktree list<\/code> which add simple additional commands, and some like <code>repush = !git pull --rebase &amp;&amp; git push<\/code> which use execute shell commands to execute more complex commands or combine multiple commands.<\/p>\n\n<p>This is a snapshot of my Git configuration. The <a href=\"https:\/\/github.com\/opdavies\/dotfiles\/blob\/7e935b12c09358adad480a566988b9cbfaf5999e\/roles\/git\/files\/.gitconfig\">full version is on GitHub<\/a>.<\/p>\n\n ",
"summary": null
}
]
}