Matthew
Matthew

Reputation: 747

Git: Ignore compiled Google Go

My compiled Go code does not end with an extension on Linux.

Any tips for handling ignoring these in the .gitignore file?

Upvotes: 13

Views: 5837

Answers (5)

eli
eli

Reputation: 9228

Just Ignore all files in the required directory except go files.

E.g assume your main.go and binary file with name main are in the same directory i.e main/main.go and main/main

Modify your .gitignore to ignore all files inside the main directory except files with the .go extension

main/*
!main/*.go

Upvotes: 0

user11617
user11617

Reputation:

If you are using the go tool to build your code you can use the -o flag to specify the output file name, so you can for example use go build -o bin/elf and then add bin/* to your .gitignore file.

Upvotes: 16

Richard Hansen
Richard Hansen

Reputation: 54163

Keep your build products separate from your source code. This has several advantages:

  • you can start many different builds of the same code at the same time without creating multiple clones
  • it's easy to be confident that you've really done a clean; rm -rf objdir will remove files that a buggy make clean will miss
  • you can kick off a build from a read-only copy of the source tree (e.g., CD-ROM)
  • you're less likely to accidentally commit generated files
  • git clean -dxf will clean your source tree, but won't touch your built files

Note that GNU Automake and Make support a feature called VPATH to make it easy to separate the source tree from the build tree.

Upvotes: 9

wnoise
wnoise

Reputation: 9932

The .gitignore language isn't Turing complete. It can only match fairly simple patterns. This just means you need something else that can figure out what possible executables should be excluded. So, write a script that creates .gitignore based on the names of the executables that can be created. If you want to be fancy, make an alias that runs it before git add.

Upvotes: 3

Callum Rogers
Callum Rogers

Reputation: 15829

Just add the names of the files in your .gitignore? Tedious, but it will work.

Upvotes: 3

Related Questions