//这是一个存档的帖子!

布局:职位 现任:职位 cover: assets/images/posts/gitsc.png 标题:让你的Git行动更轻松----这里是怎么做的? 日期:2018-12-12-12 00:00:00:00+0545 导航。真正的 类别:代码 标签: 代码 类:后模板 子类:'post' 作者:cdrrazan 特色:假的 一篇文章。淘宝的 "小编":/blog/making-your-git-action-easyier/ 摘要:作为一个开发者或任何地方的开发人员或与编码或开发的东西有关的地方,我们看到或使用GIT,这是流行的版本控制系统。在使用GIT的时候,我们会看到很多重复性的操作,或者有时候为了修复一些错误,我们会看到很多重复性的操作。所以,今天我想和大家分享一些方便的shell脚本,可以用于自动化GIT的不同目的。 —

作为一个开发者或任何地方的开发人员,在网络上进行编码或开发的东西,我们看到或使用GIT这个流行的版本控制系统。在使用GIT的时候,我们会看到很多重复性的操作,或者是为了修复一些错误,有时也会看到很多重复性的操作。所以,今天我想和大家分享一些方便的shell脚本,可以用于自动化GIT的不同目的。

1.将你的修改推送到远程服务器。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
#!/bin/bash
# Description
# Integrate in your shell config file.

echo "Locating your Shell config file.. Please wait"

shrc=`find . -name "~/.zshrc" -print`
if [ -z "$shrc" ]; then
    echo "Zsh Shell wasn't found. Trying to locate Bash Shell!"
else
    echo "function gitup() { \n
    git add . \n
    git commit -a -m "$1" \n
    git push \n
}\n " >> .zshrc
fi

shrc=`find . -name "~/.bashrc" -print`
if [ -z "$shrc" ]; then
    echo "Bash shell wasn't found. Contact your owner!"
else
    echo "function gitup() { \n
    git add . \n
    git commit -a -m "$1" \n
    git push \n
}\n " >> .bashrc
fi

用法: 运行这个脚本将在shell配置文件中添加该函数。在这个场景中,我只用了两个shell,即bash和zsh。在你运行这个脚本后,重新启动shell,你可以使用命令 gitup "承诺消息"。

何时使用。 如果你想同时添加所有的文件,例如 git add . 这个功能会自动添加所有修改后的文件。

警告:如果你在团队中工作,或者想实现良好的提交历史,可能不是很好的做法。如果你在团队中工作,或者想实现良好的提交历史记录,一次性添加所有文件可能不是很好的做法。所以,请注意。

2.一次性克隆所有的回波!

1
2
3
4
5
6
7
8
9
10
11
12
#!/bin/bash

# 一次性克隆所有github repo。
# 从github中克隆所有公共仓库。

read -p '输入你的github用户名:' user
read -p '输入你要克隆的总页面:' page

curl "https://api.github.com/users/$USER/repos?page=$PAGE&per_page=100" |
  grep -e 'git_url*'|
  cut -d\" -f 4 |
  xargs -L1 git clone

使用方法。在你喜欢的地方执行该脚本。如果你有大量的repo,请确保在一个文件夹内运行,否则会很乱。

什么时候使用。如果你想一次性下载所有的repo,而不是一个个的去改变,那就非常有用。

警告。但是,该脚本无法下载私有资源库。请Google! :O

3.3. 修复你的git提交作者信息

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#!/bin/sh

git filter-branch --env-filter '
OLD_EMAIL="your-old-email@address.com"
CORRECT_NAME="Corrected Name"
CORRECT_EMAIL="your-correct-email@address.com"
如果["$GIT_COMMITTER_EMAIL" = "$OLD_EMAIL" ]
那么
    export GIT_COMMITTER_NAME="$CORRECT_NAME"
    export GIT_COMMITTER_EMAIL="$CORRECT_EMAIL"
火
如果["$GIT_AUTHOR_EMAIL" = "$OLD_EMAIL" ]
那么
    export GIT_AUTHOR_NAME="$CORRECT_NAME"
    export GIT_AUTHOR_EMAIL="$CORRECT_EMAIL"
火

用法: 在git repo的根目录下执行脚本文件,在这里你要修复提交作者信息。然后通过以下方式将更改推送到服务器上 git push --force --tags origin 'refs/heads/*'

何时使用。如果您已经使用了不同的电子邮件地址进行提交,并且只想使用一个。使用不同的电子邮件可能无法显示您的个人资料中的所有贡献。

警告:可能不适合于项目或与不同成员合作。

我将尽可能频繁地更新这个列表。但是,如果你觉得这篇博文内容丰富,有用,并想添加或建议你自己的git脚本,请到Github中的Github这里。把它分叉,然后提交给PR。我将非常乐意。谢谢你的时间。我们将在下一篇博文中见面