Bash-git-commands: Difference between revisions
		
		
		
		
		
		Jump to navigation
		Jump to search
		
				
		
		
	
mNo edit summary  | 
				mNo edit summary  | 
				||
| (2 intermediate revisions by the same user not shown) | |||
| Line 29: | Line 29: | ||
git commit -m "Generic commit message"  | git commit -m "Generic commit message"  | ||
git push -o merge_request.create -o merge_request.title="A spiffy title" -o merge_request.description="A short description"  | git push -o merge_request.create -o merge_request.title="A spiffy title" -o merge_request.description="A short description"  | ||
</pre>  | |||
Find the dates associated with your git branches  | |||
<pre>  | |||
for k in `git branch | perl -pe s/^..//`; do echo -e `git show --pretty=format:"%Cgreen%ci %Cblue%cr%Creset" $k -- | head -n 1`\\t$k; done | sort -r  | |||
</pre>  | |||
Retrieve the current commit hash (to use in scripts)  | |||
<pre>  | |||
git rev-parse --verify HEAD | awk '{print $1}'  | |||
</pre>  | |||
Reset a single file:  | |||
<pre>  | |||
git checkout HEAD -- my-file.txt  | |||
</pre>  | </pre>  | ||
[[Category:bash]]  | [[Category:bash]]  | ||
Latest revision as of 10:43, 17 November 2021
Git commands that are useful for bash scripts.
- Retrieve the hash for the current commit inside whatever branch we are in
 - This also works for submodules as long as you are within the submodule directory in question
 
git rev-parse HEAD
- Change the git remote from http(s) to git@ can be done this way:
 
sed -i 's|https://URL/|git@URL:|g' ./.git/config
- If you want to update the submodules
 
sed -i 's|https://URL/|git@URL:|g' ./.gitmodules git submodule sync --recursive sed -i 's|https://URL/|git@URL:|g' ./.git/modules/PATH/config
If you want to create a PR/MR in gitlab via the CLI
- you must have write privs
 - Make very sure you are in a NEW branch so you do not screw things up.
- Using a date or epoch timestamp is reasonable
 
 
git branch foo git checkout foo --- Make your changes --- git add -A git commit -m "Generic commit message" git push -o merge_request.create -o merge_request.title="A spiffy title" -o merge_request.description="A short description"
Find the dates associated with your git branches
for k in `git branch | perl -pe s/^..//`; do echo -e `git show --pretty=format:"%Cgreen%ci %Cblue%cr%Creset" $k -- | head -n 1`\\t$k; done | sort -r
Retrieve the current commit hash (to use in scripts)
git rev-parse --verify HEAD | awk '{print $1}'
Reset a single file:
git checkout HEAD -- my-file.txt