Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/escorciav/dev-tips-for-scientist
Software dev tips for scientist
https://github.com/escorciav/dev-tips-for-scientist
Last synced: 3 days ago
JSON representation
Software dev tips for scientist
- Host: GitHub
- URL: https://github.com/escorciav/dev-tips-for-scientist
- Owner: escorciav
- License: mit
- Created: 2024-07-16T11:16:02.000Z (4 months ago)
- Default Branch: main
- Last Pushed: 2024-07-16T11:19:40.000Z (4 months ago)
- Last Synced: 2024-07-16T14:02:47.900Z (4 months ago)
- Size: 2.93 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# [Software Development Tips For Scientist](https://github.com/escorciav/dev-tips-for-scientist)
Scientists are great, right?
Einstein, M. Curie, Fermi, etc.Not all though!
Especially when a field gets trending &/Or crowded (Nuclear Physics => Nuclear Engineering, ML Science => ML Engineering, etc.)But, hopefully a/some? colleague of yours got trained as
- Scientist
- Engineer## 1. Git Tips
### 1.1 Day to day tips
#### 1.1.1 Git was NOT made up for tracking binary files
It's OK to be lazy once & do
`git add my-shit.[pkl|pth|npz]; git commit -m "typical useless fii commit msg"`
BUT, JUST AVOID making that a habit :please:
Especially when you work with other people.:warning: The same goes for machine-specific binaries aka don't do `git add *.[pyc|so|__pycache__]`
### 1.2 Tips to NOT get entangled in branches
#### 1.2.1 Branch & commit
Branch out of the central development branch (or backbone), and sync often.
Usually the main branch is called `main` or `master`.
```
git checkout main
git chechout -b new-awesome-feature
git add
git commit -m "useful comment"
git push
```> In doubt about the main dev branch? ask the project owner, admin, or maintainers :)
#### 1.2.2 Setup your git config
Update your local config such that you pull with rebase & push to the corresponding branch.
You can config git to do so by default in your git-config, usually placed on `~/.gitconfig`, my looks alike
```text
[push]
default = current
[pull]
rebase = True
```You can also do it per repo or global.
> TODO: contribution of terminal commands to do it is welcome
## 2. More resources
- [Git workflow](https://git-scm.com/docs/gitworkflows#:~:text=gitworkflows%20-%20An%20overview%20of%20recommended%20workflows%20with%20Git.%20SYNOPSIS.)
- [Samin's Git slides, SAICC-internal]()