---

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"

---

Parent:: [[Storage and Syncing]], [[Privacy & Security]], [[Selfhosting]]

---

&emsp;

```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

&emsp;

# Git

&emsp;

```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.
```

&emsp;

```toc
style: number
```

&emsp;

---

&emsp;

### Characteristics

&emsp;

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]].

&emsp;

---

&emsp;

### Scripts

&emsp;

This section highlights different scripts to make Git work on different devices.

&emsp;

#### 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
~~~
```

**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'
~~~
```

&emsp;

#### 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.

&emsp;

---

&emsp;

### Gitup

&emsp;

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**

&emsp;

---

&emsp;

### Further steps

&emsp;

- [x] Buy Working Copy Pro (£17.99)

&emsp;

---

&emsp;

### Documentation

&emsp;

- [Working Copy User Guide](https://workingcopyapp.com/manual.html#)
- [GitHub Help](https://guides.github.com/)
- [Gitup docs](https://github.com/git-up/GitUp/wiki)

&emsp;
&emsp;