初始化一个Git仓库:git init
添加文件到Git仓库,分两步:
git add <file>
,注意,可反复多次使用,添加多个文件;
git add –all
命令全部加入缓存区
git commit -m <message>
提交文件到版本库
要随时掌握工作区的状态:git status
如果git status
告诉你有文件被修改过,用git diff <file>
可以查看修改内容。工作区与缓冲区比较。
git log
命令显示从最近到最远的提交日志
--pretty=oneline
参数简化log的输出信息
git reset --hard HEAD^
回到上一个版本
git reset --hard <commit_id>
回到指定版本
git reflog
用来记录你的每一次命令
git diff HEAD -- <file>
查看工作区和版本库里面最新版本的区别:
git checkout -- <file>
把<file>
文件在工作区的修改全部撤销
一种是readme.txt自修改后还没有被放到暂存区,现在,撤销修改就回到和版本库一模一样的状态;
一种是readme.txt已经添加到暂存区后,又作了修改,现在,撤销修改就回到添加到暂存区后的状态。
git checkout
其实是用版本库里的版本替换工作区的版本
git reset HEAD
取消缓存区的修改。
git rm –cached <file>
,可以从缓存区移除文件,使该文件变为未跟踪的状态,同时下次提交时从本地库中删除。
从版本库中删除文件:
① rm <file>
//删除工作区的文件
② git rm <file>
//删除版本库中的文件
③ git commit -m "remove <file>"
//提交删除
ssh-keygen -t rsa -C "youremail@example.com"
创建SSH Key
。一路回车
id_rsa
是私钥,不能泄露出去,id_rsa.pub
是公钥,可以放心地告诉任何人。
关联远程仓库:
git remote add origin git@github.com:<github_user_name>/<repository_name>.git
把本地库的所有内容推送到远程库上:
git push -u origin master
-u
参数,把本地的master分支和远程的master分支关联起来,在以后的推送或者拉取时就可以简化命令。
git push origin master
关联以后,推送最新修改
克隆一个本地库:
git clone git@github.com:<github_user_name>/<repository_name>.git
Git自动把本地的master分支和远程的master分支对应起来了,并且,远程仓库的默认名称是origin。
查看分支:git branch
创建分支:git branch <name>
切换分支:git checkout <name>
创建+切换分支:git checkout -b <name>
合并某分支到当前分支:git merge <name>
删除分支:git branch -d <name>
强行删除分支:git branch -D <name>
git log --graph --pretty=oneline --abbrev-commit
看到分支的合并情况
git merge --no-ff -m "merge with no-ff" dev --no-ff
参数,表示禁用Fast forward
git stash
把当前工作现场“储藏”起来,等以后恢复现场后继续工作
git stash list
查看被stash的工作现场
git stash apply
恢复后,stash内容并不删除
git stash apply stash@{0}
恢复指定的stash
git stash drop
删除stash中的内容
git stash pop
,恢复的同时把stash内容也删了
git remote [-v]
查看远程库的信息
git push origin <name>
推送分支到远程仓库
基于远程分支origin/dev
创建本地分支dev
:
git checkout -b dev origin/dev
指定本地dev分支与远程origin/dev分支的链接:
git branch --set-upstream-to=origin/dev dev
git pull
把最新的提交从origin/dev抓下来
命令git tag <tagname>
用于新建一个标签,默认为HEAD
,也可以指定一个commit id
;
命令git tag -a <tagname> -m "blablabla..."
可以指定标签信息;
命令git tag
可以查看所有标签
命令git push origin <tagname>
可以推送一个本地标签;
命令git push origin --tags
可以推送全部未推送过的本地标签;
命令git tag -d <tagname>
可以删除一个本地标签;
命令git push origin :refs/tags/<tagname>
可以删除一个远程标签。
让Git显示颜色,会让命令输出看起来更醒目:
git config --global color.ui true
.gitignore
文件 把要忽略的文件名填进去,Git就会自动忽略这些文件。
所有配置文件可以直接在线浏览:https://github.com/github/gitignore
git add -f App.class
用-f强制添加到Git
git check-ignore -v App.class
找出来到底哪个规则写错了
git config --global alias.st status
以后st
就表示status
--global
参数是全局参数,也就是这些命令在这台电脑的所有Git仓库下都有用