git init
将当前目录添加版本库(responsity)
git add filename filename
将文件添加到暂存区(Stage)
git commit -m "tip for commit"
提交暂存区中的文件并添加提交说明,添加 -a 参数后会将工作区内被修改的文件暂存并提交
git status
查看当前仓库状态
git diff
查看当前仓库中修改的文件内容
git log
查看提交记录
加参数 --pretty=oneline可一行显示,信息包括
版本id 提交附加信息
git reset --hard HEAD^
回退到上一版本
HEAD~100 回到100个版本前吧
若未关闭控制台,
git reset --hard commit_id可回退至对应版本
git relog
用来记录输入的命令
git checkout -- filename
把filename在工作区的修改全部撤销,这里有两种情况:
一种是filename自修改后还没有被放到暂存区,现在,撤销修改就回到和版本库一模一样的状态;
一种是filename已经添加到暂存区后,又作了修改,现在,撤销修改就回到添加到暂存区后的状态。
总之,就是让这个文件回到最近一次git commit或git add时的状态
git checkout -- file命令中的--很重要,没有--,就变成了“切换到另一个分支”的命令
git reset HEAD filename
将暂存区更改撤销返回至工作区
git rm file
删除文件,删除后记得提交,删错了可checkout
关联远程库
git remote add origin git@server-name:path/repo-name.git
关联后,使用命令git push -u origin master第一次推送master分支的所有内容
此后,每次本地提交后,只要有必要,就可以使用命令git push origin master推送最新修改
git clone http:xxxxx
从远程库克隆
分支管理
git branch branchname
创建分支
git checkout branchname
切换分支
git checkout -b branchname
-b表示创建并切换至branch
git branch
列出所有分支信息
git merge branchname
合并指定分支到当前分支,git会尽可能采取fast forward方式进行合并,但删除分支后,会看不到分支的合并信息,添加参数--no-ff 可禁止FastForward方式,此时git会在merge时生成一个新的commit,所以要同时添加 -m e.g. git merge --no-ff -m "tip about this merge" branchname
git branch -d branchname
删除指定分支 -D 强制删除未被合并的分支
git log --graph
查看分支合并日志
git stash
保存当前工作区状态,可切换至其他分支处理问题而避免提交 可添加 save "save message"添加提示信息
git stash list
查看保存过的工作现场
git stash apply
应用保存过的工作现场,但不删除stash中缓存的内容,添加stash@{n}可选择应用工作现场
git stash drop stash@{n}
删除保存的工作现场
git stash pop
应用保存的第一个工作现场并从stash中移除,默认为第一个,可添加参数stash@{n}
标签
git tag <tagname>
为最近一次commit添加标签
git tag <tagname> commit_id
为指定commit添加标签
git tag -a <tagname> -m "tip" commit_id
-a指定标签名,-m指定说明文字
git tag
查看标签
git show <tagname>
显示标签详细信息
git tag -d <tagname>
删除指定标签
git push origin <tagname>
推送指定标签
git push origin --tags
推送所有标签
git push origin :ref/tags/<tagname>
删除远程标签
配置别名
git config --global alias.cm commit
gir cm <filename>
忽略文件
.gitignore文件
# Windows:
Thumbs.db
ehthumbs.db
Desktop.ini
# Python:
*.py[cod]
*.so
*.egg
*.egg-info
dist
build
# My configurations:
db.ini
deploy_key_rsa
git add -f <filename>
强制提交
git check-ignore -v <filename>
查看匹配的屏蔽规则