git-repo-watcher

授权协议 MIT License
开发语言 SHELL
所属分类 应用工具、 终端/远程登录
软件类型 开源软件
地区 不详
投 递 者 太叔栋
操作系统 跨平台
开源组织
适用人群 未知
 软件概览

Git Repo Watcher

A simple bash script to watch a git repository and pull upstream changes if available.

Requirements

Basically, it will work anywhere you can install Bash.

If something doesn't work, please let me know.

Usage

You only need the path to your git repository to start.

This will start a watcher that looks for changes every 10 seconds:

./git-repo-watcher -d "/path/to/your/repository"

The time interval can be changed by passing it to -i:

./git-repo-watcher -d "/path/to/your/repository" -i 60 #seconds

Make sure your local repository is tracking a remote branch, otherwise the script will fail.

Customizations

You can add your own logic to the file: git-repo-watcher-hooks

For example, you can start your build process in case of changes:

# $1 - Git repository name
# $2 - Branch name
# $3 - Commit details
change_pulled() {
    echo "Starting build for commit: $@"
    ./your-build-script.sh
}

If you have more than one repository you can pass a copy of the git-repo-watcher-hooks file like so:

./git-repo-watcher -d "/path/to/your/repository" -h "/path/to/your/hooks-file"

Private repositories

The script works with private repositories.

First configure a password cache with git config --global credential.helper "cache --timeout=60".
Make sure the timeout is greater than the time interval given to the script. Both are given as seconds.
The program will execute git fetch and ask for your login data. The script itself does not store passwords!

If you want it to run in the background as a daemon process, you have to execute git fetch beforehand.

Example code:

cd "/path/to/your/repository"
git config --global credential.helper "cache --timeout=60"
git fetch

# Checking exit code
if [[ $? -eq 1 ]]; then
    echo "Wrong password!" >&2
    exit 1
fi

# Disown process
./git-repo-watcher -d "/path/to/your/repository" > "/path/to/your/logfile.log" & disown

Windows 10

The easiest way is to install Git Shell, which also comes with bash.
The only thing you have to consider are the file separators. The Unix format should be used here:

C:\YourGitRepository/C/YourGitRepository

It is a little more difficult with WSL.
This must first be installed and configured via the Windows Store.The file structure is also slightly different:

C:\YourGitRepository/mnt/c/YourGitRepository

Tests

The test suite git-repo-watcher-tests is using the test framework shunit2, it will be downloaded automatically to your /tmp folder.
The script has no other dependencies and requires no internet connection.

The tests create several test git repositories in the folder: /tmp/git-repo-watcher.

A git user should be configured, otherwise the tests will fail.
With the following line you can check if this is the case:

git config --list

You can configure it as follows:

git config --global user.email "your@email.com"
git config --global user.name "Your Name"
  • 分享一下个人总结的git语法、使用规范以及碰到问题的debug(自己感觉能覆盖90%的内容)。 觉得有用的话,帮忙点个赞吧_(手动加狗头) 分支管理常见命令 $ git branch # 查看当前版本库所有分支 $ git branch <name> # 创建新的分支 $ git checkout <name> or git switch <name> # 切换分支 $ git checkout

  • Contents    1. 1 About Git          1. 1.1 Why Git?          2. 1.2 Already a Git user?    2. 2 Task reference          1. 2.1 Installing Repo          2. 2.2 Synchronizing your client          3. 2.3

  • 一,git clone 1,git clone某一个分支 git clone -b <branch> <remote_repo> 2,.git 文件太大 :clone的时候,可以指定深度,如下,为1即表示只克隆最近一次commit. git clone git://xxoo --depth 1 二,撒销一个合并 如果你觉得你合并后的状态是一团乱麻,想把当前的修改都放弃,你可以用下面的命令回到合并之

  • bogon:gitTest admin$ git remote -v origin git@github.com:jeffasd/Demo.git (fetch) origin git@github.com:jeffasd/Demo.git (push) bogon:gitTest admin$ git remote rename -? usage: git remote rename <old>

  • 一、git简介 GIT是一款免费、开源的分布式版本控制系统,用于敏捷高效的处理任何或大或小的项目。 并且,能将所有的版本信息仓库全部同步到本地。本地查看所有版本历史,离线在本地提交,只需要在联网时push到对应的服务器即可。 可完整将代码及历史记录镜像到本地,任何一个协同工作的服务发生故障都可由任何一个镜像恢复。 二、repo简介 repo主要是用Google用python脚本写的调用git脚本,

  • git add git commit -m 'comments' git commit --amend git branch -a git checkout -b branchname remotes/origin/branch git ls-remote --tags origin ==> 获取远程TAG repo sync -c -d -q --force-sync -j16  ==> 无法强

  •      个人邮箱:xiaokeweng@gmail.com      最近在学习android中使用了repo和git,repo是google使用shell和python写的一个脚本,其中封装了git的调用。从而方便android开发人员的使用。于是专门小小的学习了下python,看了repo的源码,同大家分享一下。 Linux环境下,如果你曾尝试过在google官网上down代码并自己buil

  •  建议的git 递交的流程:  1. git pull: 更新到最新(这个专门的分支最好不要做任何编译,打patch之类的动作, 只要在远端的git有递交, 本地就必须重新pull之后才能递交) 2. 覆盖或者编辑本地, 如上, 建议覆盖, 而不是现编, 耗时, 别人可能递交了 3. git status: 查看需要add哪些, 或者修改了哪些 4. git diff: 详细查看更改了哪些, 在a

  • 如果你添加了一个 remote 然后推送代码过去,Git 会把你最后一次推送到这个 remote 的每个分支的值都记录在 refs/remotes 目录下。例如,你可以添加一个叫做 origin 的 remote 然后把你的 master 分支推送上去: ​$ git remote add origin git@github.com:schacon/simplegit-progit.git

  • 一、git 的用法        git 基础:git 分为本地cache、本地库、远程仓库。        git init —— git 初始化;        git add —— 将代码从本地cache提交到本地库;        git comment —— 将代码从本地库提交到远程仓库,-m “注释”,表示直接添加注释,--amend,表示在上一次提交的 基础上再次提交;      

  • (486条消息) repo和Git的关系_布拉德利_蔡的博客-CSDN博客_git repo 这下就明了了吧,这个manifest目录本身其实也是一个git库,一个Android版本对应一个分支,其中的default.xml就记录着这个版本所需要的库,repo工具再根据这个文件去把取各个库的对应分支并最终组合起来。 总结一下,Git管理单独的模块,而repo管理所有的Git库,将多个Git库组合在

  • 初始化git仓库 repo init -u git://172.16.1.11/manifest.git -b 分支名称 -m wanglei.xml   更新仓库代码 repo sync   启动分支代码 repo start 分支名称 --all   下载新分支 repo forall -c git checkout -b  本地分支名称(自定义)  服务器分支名称   切换到另一个分支 re

  • To collaborate in a distributed development process you’ll need to push code to remotely accessible repositories. This is somewhat of a follow-up to the previous article setting up a new rails app wit

  • git-repo简称Repo,是基于Git的一款工具,可以管理多个Git库,从而使开发流程的自动化。 repo命令其实是一个Python2脚本(目前不兼容Python3)。 1.安装 mkdir ~/bin PATH=~/bin:$PATH curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo chmod

  • 三者各自功能 git,版本管理库,在git库中没有中心服务器的概念,真正的分布式。 repo,repo就是多个git库的管理工具。如果是多个git库同时管理,可以使用repo。当然使用gerrit,就必须用repo。 gerrit,提交审核代码,图形化的界面,简单的操作 使用三者管理代码流程 repo init xxx初始化 repo sync xxx同步要改动的项目 在该项目下面repo sta

  • (1)下载 curl https://mirrors.tuna.tsinghua.edu.cn/git/git-repo -o repo chmod +x repo sudo mv repo /usr/local/bin/ (2)repo的运行过程中会尝试访问官方(Google)的git源更新自己(有墙),如果想使用清华tuna的镜像源进行更新,可以将如下内容复制到你的~/.bashrc里 exp

  • git安装 sudoapt-get install git-core repo安装 mkdir~/bin cd~/bin 将TemporaryInternet FilesTemporary Internet Filesrepo.zip解压出来的repo放在当前目录下。 sudochmod 755 repo echo“export PATH=$HOME/bin:${PATH}” >> ~/.bash

  • http://www.cnblogs.com/angeldevil/archive/2013/11/26/3238470.html http://blog.csdn.net/stevenhu_223/article/details/8828130 在Linux平台下进行Android系统项目开发时,需要Git或repo管理。 Git和Repo的区别: 1. Git:Git是一个开源的分布式版本控制

  • 一、Linux常用命令 pwd           用于显示工作目录,执行pwd指令可立刻得知您目前所在的工作目录的绝对路径名称。 chmod      用来变更文件或目录的权限。 >                表示覆盖原文件内容(文件的日期也会自动更新)。 >>              表示追加内容(会另起一行,文件的日期也会自动更新)。 mkdir        在工作目录下建立一个名子

 相关资料
  • Android使用Git作为代码管理工具,开发了Gerrit进行代码审核以便更好的对代码进行集中式管理,还开发了Repo命令行工具,对Git部分命令封装,将百多个Git库有效的进行组织。要想克隆和管理这百多个Git库,还真不是一件简单的事情。 基础工作流 与存储库交互的基本形式如下: 用 repo start 来新建一个主题分支 编辑文件 用 git add 更改阶段 用 git commit 提

  • 我克隆了一些库到我的android的项目,一切正常,当我完成我的工作,我试图把它推到我的回购,但它给我的问题: 计数对象:1937,完成。增量压缩最多使用8个线程。压缩对象:100%(1839/1839),完成。写入对象:100%(1937/1937),27.24mib | 5.83mib/s,完成。总计1937(增量703),重复使用0(增量0)错误:RPC失败;结果=22,HTTP代码=413

  • 问题内容: 我已经从似乎各种各样的工作dockerfile中复制了此代码,这是我的: 这给我错误 这是我第一次使用dockerfiles,但是从我阅读的内容(以及从有效的配置中获取)来看,我不明白为什么它不起作用。 我的id_rsa与我的dockerfile位于同一文件夹中,并且是我的本地密钥的副本,可以克隆此存储库。 编辑: 在我的dockerfile中,我可以添加: 并且它会打印出正确的密钥,

  • 尝试安装回购的特定分支。谷歌让我这么做 分支的名称是,所以我做了,但它返回404。 如何安装此分支?

  • Repo is a tool that we built on top of Git. Repo helps us manage the many Git repositories, does the uploads to our revision control system, and automates parts of the Android development workflow. Re

  • Repo is a tool that we built on top of Git. Repo helps us manage the many Git repositories, does the uploads to our revision control system, and automates parts of the Android development workflow. Re