我是git hook和服务器端git功能的新手。我在客户端git上进行提交和推送代码,我们使用Application Lifecycle Management(ALM)工具进行git merge 。我正在尝试编写git挂钩,以对存储库中的新文件/修改过的文件进行一些测试。我能够编写和测试客户端挂钩pre-commit
现在,我需要添加一些服务器端git钩子以在合并到master之前验证文件,因为有一个更改可以跳过跳过使用-no-verify选项进行客户端验证。当我阅读一些git hook教程时,pre-pushhook是服务器端的钩子。我试图创建预推钩子,它正在客户端上工作。现在,当用户尝试使用--no-verify选项(即使不应在客户端上对其进行控制)进行更改时,如何使其成为服务器端挂钩并强制验证文件。
我的大问题是,当我们git push从本地分支/仓库执行操作时,如何触发服务器挂钩。
创建钩子:
创建了一个名为pre-commit的钩子,并将其放在某个文件夹下git_hooks/pre-push以及中.git/hooks/pre-push。现在,为我的预推脚本创建一个符号链接。因此,无论何时执行git push此操作,都会触发.git / hooks / pre-push,这是我脚本的符号链接git_hooks/pre-push
编辑:
我以为钩子pre-push和pre-receive钩子都与在git push命令上触发的钩子相同,但pre-push仅在客户端起作用,pre-recieve在服务器端起作用。我创建了pre-receive钩子并将其推到master分支。现在,当我确实git push收到此 错误时:无法生成钩子/预先接收:没有这样的文件或目录。
我正在Windows和Linux平台上尝试此操作。在Windows上,我收到此错误;在Linux上,甚至没有触发过。我pre-receive在两个平台上的master分支上都放置了钩子。
我是Docker的新手。我想创建一个映像,该映像将作为项目构建的一部分运行以检查提交的文件。
我的要求是,Docker文件应具有以下语句
<git files>(作为命令行arg)我想为此过程创建一个图像。
我应该从当前本地存储库中获取git commits文件列表,并将这些文件传递给我的应用程序以扫描这些文件。
在构建映像时,我只需要复制我的应用程序,但是在运行容器时,我需要运行git diff以查找更改的文件并将其作为参数传递给我的应用程序。
是否可以git diff通过docker容器运行?
更新:
我试图git diff在docker的当前存储库上执行,但是它说的不是git存储库。我正在将Docker映像作为gitlab yml文件中持续集成的一部分运行。
请帮我达到这个要求?
我想从资源文件夹的子目录中读取文件。我面临着 jar 执行的问题。
这是我的目录结构。
src/main/resources
|_ Conf
|_ conf1
|_ config.txt
|_ conf2
|_ config.txt
在这里,我试图config.txt从Conf文件夹的所有子目录中读取文件。我不知道子目录Conf会有什么。我知道直到Conf. 因此,我将提供类路径直到Conf并尝试获取子目录和文件。
我尝试使用ClassPathResource. 如果它是文件,这工作正常。我在目录方面遇到问题。我正在使用getFileapi 来获取目录路径以遍历该目录以获取导致 jar 执行问题的子目录。
这是我的代码:
下面的代码是读取Conf文件夹中的子目录。
List<Map<String,String>> list = new ArrayList<Map<String,String>>();
ClassPathResource classPathResource = new ClassPathResource("Conf");
File dir = classPathResource.getFile();
Files.walk(Paths.get(dir.toString()))
.filter(Files::isDirectory)
// This is to exempt current dir.
.filter((Path p)->!p.toString().equals(dir.toString()))
.forEach(f-> {list.add(readDirectory(f.toString()));});
Run Code Online (Sandbox Code Playgroud)
读取每个子目录。
public Map<String, String> readDirectory(String dir) {
Map<String, String> map = new HashMap<String, …Run Code Online (Sandbox Code Playgroud)