`

我的 Git 偏好設定

 
阅读更多

. 讓 Command Line 指令列顯示目前處在哪一個 Git Branch 分支,最早是在 RGBA 看到這一招,非常方便。另外我最近看到一個點子是顯示從上一次 commit 之後過了多久時間,這可以提醒你是不是該 commit 了 XD

請修改家目錄的 ~/.bash_profile 檔案 (我是用 Bash)。

 

1234567891011121314151617
function git_branch {
ref=$(git symbolic-ref HEAD 2> /dev/null) || return;
echo "("${ref#refs/heads/}") ";
}
 
function git_since_last_commit {
now=`date +%s`;
last_commit=$(git log --pretty=format:%at -1 2> /dev/null) || return;
seconds_since_last_commit=$((now-last_commit));
minutes_since_last_commit=$((seconds_since_last_commit/60));
hours_since_last_commit=$((minutes_since_last_commit/60));
minutes_since_last_commit=$((minutes_since_last_commit%60));
 
echo "${hours_since_last_commit}h${minutes_since_last_commit}m ";
}
 
PS1="[\[\033[1;32m\]\w\[\033[0m\]] \[\033[0m\]\[\033[1;36m\]\$(git_branch)\[\033[0;33m\]\$(git_since_last_commit)\[\033[0m\]$ "
view rawgistfile1.txt hosted with ❤ by GitHub

 

 

結果如下,各位可以看到目前處在 master 分支,並且這個專案已經過了 1821 個小時沒有 commit 了.... :p

2. 安裝 Git 的 Bash autocompletion,這樣按 tab 就會有自動完成的效果,它甚至包括 git checkout 時都可以抓到你的 branch 名稱。這裡我用 Homebrew 來安裝 bash-completion,這套件其實包括很多 autocompletion script,你可以去 /usr/local/etc/bash_completion.d 這個目錄找找看。

brew install bash-completion
cp /usr/local/etc/bash_completion.d/git-completion.bash ~/.git-bash-completion.sh

編輯 ~/.bash_profile 加入

[ -f ~/.git-bash-completion.sh ] && . ~/.git-bash-completion.sh

3. 打開 Git 的 color 顏色設定,這樣 Git 指令的輸出結果才會加上顏色,像是 git status 等:

git config --global color.ui true

4. 設定你偏好的文字編輯器和 diff 工具

git config --global core.editor
git config --global merge.tool opendiff

5. 最後,我個人喜歡以下的 alias:

git config --global alias.co checkout
git config --global alias.ci commit
git config --global alias.st status
git config --global alias.br branch

這樣只要輸入 git st 就是 git status 了。

FYI,以上 git 設定檔的位置在 ~/.gitconfig,你也可以直接修改這個檔案。

<iframe id="I1_1393291131494" style="line-height: inherit; box-sizing: border-box; max-width: 100%; position: static; top: 0px; width: 90px; margin: 0px; border-style: none; left: 0px; visibility: visible; height: 20px;" title="+1" name="I1_1393291131494" src="https://apis.google.com/_/+1/fastbutton?usegapi=1&amp;bsv=o&amp;size=medium&amp;hl=en&amp;origin=http%3A%2F%2Fihower.tw&amp;url=http%3A%2F%2Fihower.tw%2Fblog%2Farchives%2F5436&amp;gsrc=3p&amp;jsh=m%3B%2F_%2Fscs%2Fapps-static%2F_%2Fjs%2Fk%3Doz.gapi.zh_CN.nIkyQSvaFLI.O%2Fm%3D__features__%2Fam%3DIQ%2Frt%3Dj%2Fd%3D1%2Ft%3Dzcms%2Frs%3DAItRSTNNF2S0ETvQLwi11103nlAaJ4ReHg#_methods=onPlusOne%2C_ready%2C_close%2C_open%2C_resizeMe%2C_renderstart%2Concircled%2Cdrefresh%2Cerefresh&amp;id=I1_1393291131494&amp;parent=http%3A%2F%2Fihower.tw&amp;pfname=&amp;rpctoken=28933760" frameborder="0" marginwidth="0" marginheight="0" scrolling="no" width="100%" data-gapiattached="true"></iframe>
分享到:
评论

相关推荐

    git命令git命令git命令git命令

    配置Git以设定个人偏好,如用户名和邮箱: 1. 查看当前Git配置:`git config --list` 2. 编辑配置文件(全局或项目级别):`git config -e [--global]` 3. 设置用户名:`git config [--global] user.name "[name]"`...

    版本控制svn服务器和客户端软件,git软件.zip

    在实际开发中,选择SVN还是Git往往取决于项目需求和个人偏好。SVN适合小型团队或对中央控制有较高需求的环境,而Git则更适合大型项目和分布式团队,因其强大的分支管理和非线性开发支持。 为了开始使用这些工具,你...

    GIT CHEAT SHEET 速查表

    可以根据个人偏好设置不同长度的空格,但需要注意,这个方法并不适用于Gists页面和raw文件页面。 查看某个用户的Commit历史也是非常常见的需求。通过在GitHub的commits页面URL后添加参数?author=username,可以快速...

    idea配置git下载的maven项目.pdf

    在这个过程中,我们需要完成几个关键步骤,包括软件的安装与配置,项目获取,运行环境的设定以及个性化IDE的风格。以下是对这些步骤的详细说明: 一、安装准备 1. **下载Git**:Git是分布式版本控制系统,用于管理...

    ansible-role-git:Ansible角色-Git

    用户可以根据需求自定义`ansible-role-git`的配置,比如通过定义变量来控制安装的Git版本,或者设定特定的Git操作。这种灵活性使得角色可以适应各种复杂场景。 8. **版本管理**: `ansible-role-git`也可以帮助...

    profilegit:我的个人资料 git 配置

    在这个场景中,"我的个人资料 git 配置"很可能是指创建和管理全局配置,确保每次提交都能反映用户的身份和偏好。 首先,我们需要创建或编辑全局配置文件`.gitconfig`,它通常位于用户的家目录下。我们可以使用以下...

    Python库 | git-repo-language-trends-0.5.0.tar.gz

    5. **自定义设置**:`git-repo-language-trends`库还支持自定义配置,比如设定语言识别规则、忽略某些特定文件类型等,以满足不同项目的需求。 6. **扩展应用**:除了基本的语言趋势分析,这个库还可以被集成到持续...

    Python库 | django-dbpreferences-0.3.4.git-c57b020.tar.gz

    6. **权限和访问控制**:可以设定哪些用户或组可以修改特定的设置,增强了安全性。 安装这个库通常是通过pip,Python的包管理器,命令可能是`pip install django-dbpreferences`。然后在Django项目的settings.py...

    SW_ConfigFILE.zip

    3. **.gitconfig**: 这是Git的用户配置文件,保存了用户的个人信息(如用户名和电子邮件)、Git偏好设置以及自定义命令等。在压缩包内发现.gitconfig可能意味着这是开发者的个人配置,或者是一个项目的标准化Git设置...

    personal-config:Git和Bash配置

    这个"personal-config"存储库中的"personal-config-master"可能包含了上述的Git和Bash配置示例,以及其他个人化的设定。用户可以根据自己的需求,借鉴或直接使用这些配置来优化自己的开发环境。定期更新和维护这些...

    EGit-help.pdf

    - **启动Eclipse并进入偏好设置**:重启Eclipse后,进入“Eclipse → 偏好设定…”路径。 - **配置Git参数**:在偏好设置窗口中,选择“Team → Git → Configuration”,然后点击“New Entry…”来添加新的配置项...

    dotfiles:我的配置文件

    描述中的“点文件 我的配置文件”简单明了地指出了这个压缩包内包含的是作者个人的点文件集合,可能包括他们对各种开发工具的偏好设定,这可能是为了方便在不同设备间同步环境,或者分享给其他开发者参考。...

    PreferenceElicitation.jl:Julia包,用于执行偏好启发

    但是很难设定这些折衷的比率。 您可能对它们应该是什么有一个直觉,但是优化通常对权衡的选择非常敏感。 偏好激发减轻了这种负担。 无需直接确定权衡比率,而是在设计之间进行一系列成对比较:您是喜欢设计A,设计...

    idea-settings:我的想法设定

    在IntelliJ IDEA中,用户可以根据个人的工作习惯和偏好进行一系列的定制,这些定制化的设置被称为“想法设定”或者“配置设定”。描述中的“更新历史”提示我们这里可能包含了设置文件的历史版本,特别是更新到了...

    dotfiles:zsh,screen,git,ssh,sublime,点,点的配置文件

    这些文件用于定制各种工具和环境,如终端、编辑器、版本控制系统等,以满足个人的工作流程和偏好。本篇文章将详细探讨`zsh`、`screen`、`git`、`ssh`和`Sublime Text`的配置文件,以及如何管理和维护这些dotfiles。 ...

    dotfiles:各种设定文件存储

    每种语言的偏好 有关每种语言,请参阅目录下的自述文件。 GitHub Actions工作流程定义文件 放置 直接在项目根目录下.github/workflows文件夹,并将yml文件放在其下。文件名可以是任何名称。 作业超时时间 如果在执行...

    观念设定:观念设定

    2. **快捷键**:每个开发者可能都有自己偏好的快捷键配置,"idea-settings-master"可以保存这些自定义的快捷键设置,以便在不同机器间同步或新项目中快速应用。 3. **插件管理**:IntelliJ IDEA支持大量第三方插件...

    idea-我的习惯settings

    综上所述,"idea-我的习惯settings"这一主题涵盖了IntelliJ IDEA的个性化配置各个方面,包括但不限于插件管理、快捷键设定、颜色主题、文件模板、代码风格和全局选项,这些都是提高开发效率和保持代码一致性的重要...

    dotfiles:我的个人档案

    Vimrc可以包含各种快捷键映射、插件设置、颜色方案以及个人偏好设定。例如,通过设置`map`命令创建自定义快捷键,使用`Plugin`指令安装Vim插件,或调整缓冲区大小和搜索选项等。熟悉并个性化vimrc能大大提高代码编辑...

    DreamWeaver的使用技巧

    此外,版本控制系统的集成,如Git,使得团队协作更为顺畅,可以跟踪和管理文件的修改历史,避免版本冲突。 总结,Dreamweaver不仅是网页设计的利器,更是提升工作效率和质量的关键工具。通过掌握偏好资源的积累、...

Global site tag (gtag.js) - Google Analytics