Git常用命令

一. 全局变量设置

git config --global user.name Kevin            --添加用户名

git config --global user.email 0630wl@163.com      --添加邮箱

git config --global color.ui true               --设置颜色

git config --list                        --列出所有全局变量

cat ~/.gitconfig                      --全局变量存放位置

二. 创建repository

1. 克隆已有repository

git clone gituser@git.server.com:Project.git

2. 从本地创建repository(需要GitHub上有相应repo)

git init git add README.md

git commit -m "First commit"

git remote add origin gituser@git.server.com:Project.git

git push -u origin master

三. 修改提交相关命令

git status -s                               --查看catch状态

□□ file_name                              --第一个方框表示Histroy和Staged Area的对比,第二个方框表示Staged area和Working Directory对比

git add <file_name>                         --Working Directory添加到Staged Area

git checkout <file_name>                     --Staged Area覆盖Working Directory

git commit -m "Commit message"                 --Staged Area添加到History,即Commit到本地分支

git reset <file_name>                         --History覆盖Staged Area

git commit -a <file_name> -m "Commit message"       --Working Directory添加到History

git checkout HEAD <file_name>                  --History覆盖Working Directory

git commit --amend                          --修改commit信息

git log                                   --查看提交记录

git log --de                                --查看提价记录以及tag

git diff                                   --对比Working Directory和Staged Area的区别

git diff --staged                             --对比Staged Aera和History的区别

giy diff --cached

git diff --HEAD                               --对比Working Directory和History的区别

git diff HEAD HEAD~                          --对比两次提交的区别

git diff Branch                              --对比当前分支和Branch分支的区别

git diff HEAD -- ./                             --对比当前目录和HEAD的区别

git add -A                            --提交所有变化

git add -u                            --提交被修改(modified)和被删除(deleted)文件,不包括新文件(new)

git add .                            --提交新文件(new)和被修改(modified)文件,不包括被删除(deleted)文件

四. 标签操作

git tag -a "Release_1_0" -m "Tagged basic string operation code" HEAD

git push origin Release_1_0

git show Release_1_0

git tag

git tag -d Release_1_0

五. 文件操作

git rm <file_name>                 --删除文件,并从git仓库管理系统中将其移除

git rm -r <directory_name>            --删除目录,并从git仓库管理系统中将其移除

git rm --cached <file_name>           --删除Stage Area文件,Working Directory仍保有文件

git mv <file_name> <new_file_name>      --重命名文件

六. 暂存工作区

git stash

git stash list

git stash apply <commit_number>

git stash pop

git stash clear

七. 分支管理

git branch                       --查看本地分支

git branch <new_branch>             --新建分支

git checkout <new_branch>            --切换分支

git checkout -b <new_branch>          --新建并切换分支

git branch -d new_branch             --删除已merge分支

git branch -D new_branch             --强制删除分支

git branch -m new_barnch wchar_branch    --重命名分支

git rebase <branch_name>     

git merge <branch_name>             --合并两个分支

八. 远程管理

1. git remote

git remote                           --列出所有远程主机

git remote -v                         --查看远程主机网址

git remote show <主机名>                  --查看远程主机详细信息

git remote add <主机名> <网址>             --添加远程主机

git remote rm <主机名>                    --删除远程主机

git remote rename <原主机名> <新主机名>        --重命名远程主机

git remote prune <主机名>                  --删去远程服务区腐坏的分支

2. git pull

git pull <远程主机名> <远程分支名>:<本地分知名>  

git pull origin next

<==>

git fetch origin

git merge origin/next

git branch --set-upstream master origin/next        --指定master分支追踪服务器的next分支

git checkout -b new_branch --track origin/next      --在本地新建new_branch追踪远程分支next

git branch -vv                            --查看本地分支与远程分支的追踪关系

git pull origin                             --本地的当前分支自动与对应的origin追踪分支合并

git pull                                 --当前分支与唯一一个追踪分支合并

git pull --rebase <远程主机名> <远程分支名>:<本地分知名> 

3. git fetch

git fetch <远程主机名>                       --将远程主机所有更新取回本地

git fetch <远程主机名> <分支名>                --将远程主机指定分支的更新取回本地 git branch -r git branch -a

git checkout -b new_branch origin/master         --取回origin主机master分支并创建一个新分支

git merge origin/master                      --在本地分支合并远程分支 git rebase origin/master         

4. git push

git push <远程主机名> <本地分知名>:<远程分支名>

git push origin :master                   --删除远程分支

git push origin --delete master             --删除远程分支

git push origin                       --如果当前分支和远程分支存在追踪关系,则本地分支和远程分支都可以省略

git push                           --如果当前分支只有一个追踪分支,则主机名可以省略

git push -u origin master           --将本地master分支推送到origin主机,同时指定origin为默认主机(‘-u’指定默认主机)

git push --all origin                     --将所有本地分支推送到origin主机

git push --force origin                   --远程主机分支比本地更新,需要加--force(non-fast-forward merge)

git push origin --tags             --将本地分支标签推送到远程主机

git config --global push.default matching   --不带任何参数的git pull, 会推送所有远程分支的本地分支,即matching方式

git config --global push.default simple    --不带任何参数的git pull, 默认只推送当前分支,即simple方式

九. 补丁操作

git format-patch -s <Commit Number>     --生成某次提交之后的所有Patch

git format-patch -n <Commit Number>     --某次提交之前的n个Patch

git apply --stat new_patch             --检查Patch文件

git apply --check new_patch            --检查能否应用成功

git am --signoff < new_patch           --打补丁(--signoff,commit信息中加入Signed-off-by信息)

原文地址:https://www.cnblogs.com/wulei0630/p/6671362.html