一. 全局变量设置
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信息)