---
# System prepended metadata

title: Git relative

---

Git relative
===

[Create a remote Git repository from a local one]
On server:
- mkdir my_project.git
- cd my_project.git
- git --bare init

On client:
- git clone remote_myproject_path my_project
- cd my_project
- touch .gitignore
- git init
- git add .
- git commit -m "Initial commit"
- git remote add origin youruser@yourserver.com:/path/to/my_project.git
- git push origin master



[Create a empty branch]
git checkout --orphan <branch>
git rm -rf .


[Create a remote branch]
git push -u origin <branch>

[Delete a remote branch]
git push --delete <remote_name> <branch_name>

[Push to another repo's brach]
git remote add <name for remote> <remote path>
git push <remote name, e.g. origin> <local branch name>:<remote branch name>
    
[Print]
git log -n N # last N commit
git log --author=xxx # only xxx's commit
git log -L<start>,<end>:<filename>  # show log only range in file

[Show diff between branches]
 git log --no-merges --oneline <branc_1>..<branc_2> -- <folder_1> <folder_2> <file_3>
    
[am conflict]
git am xxx.patch   # am patch, will get error
git apply --reject xxx.patch # generate .rej file, check confict part
git add relatived_files  # add the file you want to commit
git am --resolved  # finish commit and apply the commit content

[Generate a diff] 
```
git diff -M <patch> <patch> 
```
```
git format-patch -M ...
```    
```
-M[<n>]
--find-renames[=<n>]
Detect renames. If n is specified, it is a threshold on the similarity index
(i.e. amount of addition/deletions compared to the file’s size). For example,
-M90% means Git should consider a delete/add pair to be a rename if more than 90% of the
file hasn’t changed. Without a % sign, the number is to be read as a fraction, with a
decimal point before it. I.e., -M5 becomes 0.5, and is thus the same as -M50%. Similarly, -M05
is the same as -M5%. To limit detection to exact renames, use -M100%. The default similarity index is 50%.
```
    
[Create empty folder]
create a file .gitignore
```
# Ignore everything in this directory
*
# Except this file
!.gitignore
```

[check commit number]
git shortlog  -s -n remotes/origin/master arch/riscv/

[Modify commit date]
git commit --amend --date="$(date -R)"

[Modify config for auto sync to master branch]
1. git remote add origin <upstream_url>
2. edit config
```
[remote "origin"]
        url = <upstream_url>
        fetch = +refs/heads/master:refs/heads/master
```
3. git branch --set-upstream master origin/master (option)
4. use crontab -e
```
00 06 * * * cd <git_repo_path> && export http_proxy="http://cache1:3128/";export https_proxy="http://cache1:3128/";git fetch --all
```
    
    
