0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

<Memo>Git Command Summary

Posted at

Git configuration file

  • Show local git config, config file is in the current project
    git config -l
  • Show global git config, config file is in usr/.gitconfig
    git config - -global - -list
  • Show system git config, config file is in git/config/etc
    git config - -system - -list
    Priority: git config > git config --global > git config --system

Git configuration (usually use global config)

git config - -global user.name “your name”
git config - -global user.email “your mail”

.gitignore

  • You should build .gitignore file before you push a project to GitHub repository
    ref: https://github.com/github/gitignore
    But if you already pushed, you can run the following codes
    git rm -r --cached .
    git add .
    git commit -m 'update .gitignore'

Local git operation

  • Init git in your project folder. Files are untracked.
    git init
  • Add all files to workspace. Files are staged.
    git add filename
    git add .
  • Commit workspace to your local repository. FIles are unmodify when they are not modified.
    git commit -m "your commit message"

Connect to GitHub (ssh)

  • Generate ssh key pairs, then you can copy the public key and paste in your github ssh keys
    ssh-keygen -t rsa
    Command of copy public key in windows version
    clip < ~/.ssh/id_rsa.pub
  • Remove remote origin from a Git repository
    git remote remove origin
  • Create a new repository on the command line
    echo "# projectname" >> README.md
    git init
    git add README.md
    git commit -m "first commit"
    git branch -M main
    git remote add origin ssh_address
    git push -u origin main
  • Push an existing repository from the command line
    git remote add origin ssh_address
    git branch -M main
    git push -u origin main
  • Clone from GitHub
    git clone ssh_address

Rollback

  • Show status
    git status
  • Modification which has not been added (files are added)
    git checkout -- filename
    git checkout -- .
  • Pull files which have been added to staging area back to working directory
    git reset HEAD -- filename
  • Rollback to refered commit version (Just take the first 7 digits of the version number)
    git log
    git reflog
    git reset --hard commit_number
  • Rollback to last version, ^1 means 1 previous to current ver, default is 1
    git reset HEAD^1

git clean is often used in conjunction with git reset --hard. Remember that reset only affects tracked files, so you need clean to delete untracked files. Combining these two commands can make your working directory completely return The status of a specified .

  • It is a clean preview, telling you which files will be deleted. Remember that he will not actually delete files, just a reminder.
    git clean -n
  • Delete all files in the current directory that have not been tracked. It will not delete the folders and files specified in the .gitignore file, regardless of whether these files have been tracked.
    git clean -f
  • Delete files under the specified path that have not been tracked.
    git clean -f <path>
  • Delete files and folders that have not been tracked in the current directory.
    git clean -df
  • Delete all files in the current directory that have not been tracked. Regardless of whether they are the folders and files specified in the .gitignore file.
    git clean -xf

git reset --hard and git clean -f,combining them can make your working directory completely fall back to the time of the most recent commit.
git clean is also very useful for newly compiled projects. For example, it can easily delete the .o and .exe files generated after compilation. This is very useful when packaging and releasing a release.

Branch

  • Show local branch
    git branch
  • Show remote branch
    git branch -r
  • Create a new branch
    git branch branchname
  • Switch branch
    git checkout branchname
  • Create a new branch and switch to it
    git checkout -b branchname
  • Merge branch (eg. merge dev to main)
    git checkout main
    git merge dev
  • Delete branch
    git branch -d branchname
  • Push branch
    git push origin branchname

Conflict

git pull origin dev

  • Solve the conflict manually
    git push origin dev
  • Hint:
    git pull origin dev
    is equal to
    git fetch origin dev git merge origin/dev

Modification

1)git diff
When there is a change in the work area, the staging area is empty, and the comparison of diff is "the common file between the work area and the repository submitted by the last commit"; when there is a change in the work area, the staging area is not empty, and the comparison of diff is "the work area and Common files in the staging area".

2)git diff --cached,
git diff --staged
Display the addition, deletion and modification of all different files between the staging area (files that have been added but not committed) and the last commit (HEAD) (git diff --cached and git diff --staged have the same effect)

3)git diff HEAD
Display the addition, deletion and modification of all different files between the working directory (tracked but not added files) and staging area (added but not committed files) and the last commit.

3.1)git diff HEAD~X,
git diff HEAD^^^… (There are X ^ signs, and X is a positive integer):
You can view all the additions, deletions and changes between the last submitted version and the previous X versions of the previous timeline

4)git diff <branch1> <branch2>
Compare the difference between the contents of the last commit on the two branches

4.1) git diff branch1 branch2 --stat:
Show all files with differences (not detailed, no comparison content)

4.2) git diff branch1 branch2:
Show the detailed differences of all files with differences (more detailed)

4.3) git diff branch1 branch2 file_path:
Display the detailed differences of the specified file (comparison content)

4.4) git log dev ^master:
Check the commits in the dev log, but the commits that are not in the master log

4.5) git log master..dev:
Check what content is submitted by the log in dev more than the log in master (note that the content listed after the two dots ".." (here, dev) is more submitted)

4.6) git log dev...master:
I don’t know who submits more and who submits less. I just want to know what’s different

4.7) git log --left-right dev...master:
In the above case, show which branch each commit is on

Development flow

  • Get latest version
    git checkout dev
    git merge main
  • Coding...
  • Push the code you modifed to remote repository
    git push origin dev
  • Develop at home
    git checkout dev
    git pull origin dev
  • Coding...
    git push origin dev
  • Develop in company
    git pull origin dev

Other.Make git records concise

  • Merge from the current start to the version number
    git rebase -i version_num^
  • Find the latest 3 logs to merge from the current
    git rebase -i HEAD-3
  • Git log graph
    git log - -graph
    git log - -graph - -pretty=format:”%h %s”
  • merge log
    git checkout dev
    git rebase master
    git checkout master
    git merge dev
  • conflict when git rebase,solve the conflict manually
    git add
    git rebase - -continue

Conflict tool

tool: beyond compare
git config:
git config - -local merge.tool bc3
git config - -local mergetool.path ‘beyondcompare installation path’
git config - -local mergetool.keepBackup false

git mergetool//Automatically start the bc3 software

Build your git server on linux

  • Install git and environment (git is written in c, so you have to prepare c compile env)
    yum -y install curl curl-devel zlib-devel openssl-devel perl epic expat-devel gettext-devel gcc cc
  • Upload git resource code package and decompress
    put file-address
    tar zxvf package-name
  • Compiling
    cd git
    autoconf
    ./configure
    compile
    make
    install git
    make install
    install finished and check git version
    git --version
  • Build git account and server
    the last git is the username
    adduser -r -c ‘git version control’ -d /home/git -m git
    set password
    passwd git
    switch to user git
    su git
    get into home directory of user git
    cd ~
    mkdir repo1
    cd repo1
    git init --bare
  • You can push your project to this git server
    ssh://git@ip-address/home/git/repo1

Search in GitHub

in:name inputprojectname
in:description inputdescriptioncontent
in:readme inputreadmecontent
stars:>numofstars
forks:>numofforks
language:codinglanguage
user:authorname
size:>=projectsize
awesome xx
xx tutorial
xx starter/boilerplate
xx sample

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?