1,配置用户名和邮箱
$ git config --global user.name "Your Name"
$ git config --global user.email "email@example.com"
2,初始化一个Git仓库
$ git init
3,添加文件到Git仓库
(1)使用命令git add ,注意,可反复多次使用,添加多个文件;
强制添加忽略文件到Git:$ git add -f App.class
(2)使用命令git commit -m <message>
,完成
4,查看状态
$ git status
: 可以让我们时刻掌握仓库当前的状态
5,查看修改内容
$ git diff
: 顾名思义就是查看difference,显示的格式正是Unix通用的diff格式
用git diff HEAD -- red.txt
命令可以查看工作区和版本库里面最新版本的区别
6,日志查看
(1)git log可以查看提交历史,以便确定要回退到哪个版本。
(2)用git reflog查看命令历史,以便确定要回到未来的哪个版本。
简化log命令:
$ git log --pretty=oneline
$ git log --pretty=oneline --abbrev-commit
用git log --graph
命令可以看到分支合并图。
7,回退
HEAD指向的版本就是当前版本,因此,Git允许我们在版本的历史之间穿梭,使用命令:
git reset --hard commit_id。
8,撤销修改
$ git checkout -- file
可以丢弃工作区的修改
让这个文件回到最近一次git commit或git add时的状态
reset和check的区别:
$ git reset
是丢弃版本或者暂存区的修改;
$ git checkout
是丢弃工作区的修改
9,删除文件
$ git rm test.txt
然后提交即可。
10,创建SSH Key:
$ ssh-keygen -t rsa -C "youremail@example.com"
11,远程库
查看远程库的信息:$ git remote
显示更详细的信息:$ git remote -v
关联一个远程库:$ git remote add origin git@server-name:path/repo-name.git
推送远程分支:$ git push origin master
创建远程origin的dev分支到本地: git checkout -b dev origin/dev
删除远程分支:$ git push origin --delete asynarena-new
指定本地dev分支与远程origin/dev分支的链接:$ git branch --set-upstream-to=origin/dev dev
(如果git pull提示no tracking information,则说明本地分支和远程分支的链接关系没有创建)
删除已有的GitHub远程库:$ git remote rm origin
关联Gitee的远程库: $ git remote add origin git@gitee.com:liaoxuefeng/learngit.git
12,第一次推送master分支的所有内容至远程库
$ git push -u origin master
此后,每次本地提交后,只要有必要,就可以使用命令git push origin master
推送最新修改
13,克隆一个仓库
$ git clone
$ git clone git@github.com:michaelliao/gitskills.git
14,创建与合并分支
查看分支:$ git branch
创建分支:$ git branch <name>
切换分支:$ git checkout <name>或者$ git switch <name>
创建+切换分支:$ git checkout -b <name>或者$ git switch -c <name>
合并某分支到当前分支:$ git merge <name>
删除分支:$ git branch -d <name>
强行删除:$ git branch -D <name>
(一般针对于还未合并的分支需要强制删除)
15,要强制禁用Fast forward模式
$ git merge --no-ff -m "merge with no-ff" dev
16,本地贮藏工作区内容
$ git stash
查看贮藏
$ git stash list
恢复贮藏
$ git stash apply #(但是恢复后,stash内容并不删除,你需要用git stash drop来删除)
$ git stash pop # (恢复的同时把stash内容也删了)
删除贮藏
$ git stash drop
恢复指定的贮藏
$ git stash apply stash@{0}
17,复制一个特定的提交到当前分支
$ git cherry-pick 提交码
18,把本地未push的分叉提交历史整理成直线
$ git rebase
19,标签
创建标签:$ git tag v1.0
查看所有标签:$ git tag
在历史提交记录上打标签:$ git tag v0.9 f52c633
查看标签信息:git show v0.9
创建带有说明的标签,用-a指定标签名,-m指定说明文字:$ git tag -a v0.1 -m "version 0.1 released" 1094adb
删除标签:$ git tag -d v0.1
推送某个标签到远程:$ git push origin v1.0
一次性推送全部尚未推送到远程的本地标签:$ git push origin --tags
删除远程标签:
先从本地删除:$ git tag -d v0.9
然后远程删除:$ git push origin :refs/tags/v0.9
20,自定义Git
让Git显示颜色: $ git config --global color.ui true
21,忽略特殊文件
检查:$ git check-ignore -v App.class
22,配置别名
$ git config --global alias.st status
以后$ git st 表示 $ git status
举例:
$ git config --global alias.co checkout
$ git config --global alias.ci commit
$ git config --global alias.br branch
$ git config --global alias.unstage 'reset HEAD'
当你敲入命令:
$ git unstage test.py
实际上Git执行的是:
$ git reset HEAD test.py
配置一个git last,让其显示最后一次提交信息:
$ git config --global alias.last 'log -1'
这样,用git last就能显示最近一次的提交