You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

186 lines
3.0 KiB

---
Alias: ["Git repo"]
Tag: ["Admin", "Computer", "Cloud", "Privacy"]
Date: 2021-08-18
DocType: "Product"
Hierarchy: "NonRoot"
TimeStamp: 2021-08-18
Product:
Type: "IT"
Link: "https://git-scm.com/"
Value: "Free"
CollapseMetaTable: yes
banner: "![[IMG_1959.jpg]]"
banner_icon: 💾
---
Parent:: [[Storage and Syncing]], [[Privacy & Security]], [[Selfhosting]]
---
 
```button
name Edit Product parameters
type command
action MetaEdit: Run MetaEdit
id EditMetaData
```
^button-GitHubEdit
```button
name Save
type command
action Save current file
id Save
```
^button-GitHubSave
 
# Git
 
```ad-abstract
title: Summary
collapse: open
Git is a repository of data and files enabling versioning, tracking and syncing working files. It offers public and private repositories and therefore a good solution for syncing files.
The tool is predominantly used by developers collaborating but can be used for personal use.
```
 
```toc
style: number
```
 
---
 
### Characteristics
 
Git is a service originally designed for developers to collaborate on code. It offers the following features:
- Storage for files & folders
- Secure data transfer protocol
- Versioning, change tracking
- Cross-platform
Implementations are aplenty, including GitHub or [[mfxm Website Scope#Git instance|Gitea]].
 
---
 
### Scripts
 
This section highlights different scripts to make Git work on different devices.
 
#### Desktop
Git folder is set up through a desktop App (Github, Gitup, else...) and comprises a folder of Git executables.
From the Terminal pointing towards the Git folder
```ad-command
~~~
cd /folderpath
~~~
```
a few actions can be initiated:
**Download docs**
```ad-command
~~~
git pull (--rebase) (optional: 'remote name' 'branche name')
or
git fetch && git merge
~~~
```
**Upload docs**
```ad-command
~~~
git add --all/'Folder or File name'
git commit -m "name of the update for versioning"
git push (optional 'remote name' 'branch name')
~~~
```
**Create a new branch**
```ad-command
~~~
git checkout -b 'branch name'
git push origin 'branch name'
~~~
```
 
#### iOS
iOS offers a simpler solution through [Working Copy](https://workingcopyapp.com), an App to manage Git repositories from an iPhone.
Select to sync folders from your phone to your Git repository through the 'Sync Folder' option.
The App then syncs on the phone. Any changes need to be committed and pushed to Git through the App.
 
---
 
### Gitup
 
In order to pull from remote repo, follow the below steps:
- **Pull remote**
- Pull all changes from remote
- **Reset the local branch**
- Discards all local changes ahead of merge
- **From remote branch: merge into main**
 
---
 
### Further steps
 
- [x] Buy Working Copy Pro (£17.99)
 
---
 
### Documentation
 
- [Working Copy User Guide](https://workingcopyapp.com/manual.html#)
- [GitHub Help](https://guides.github.com/)
- [Gitup docs](https://github.com/git-up/GitUp/wiki)