Git命令笔记
==========================================
下载地址:http://git-scm.com/download/
https://pan.baidu.com/s/1kU5OCOB#list/path=%2Fpub%2Fgit
//配置操作
git config --list :查看设置
git config --global user.name "[username]" :设置密码
git config --global user.email "[user@mail.com]" :设置用户名
ssh-keygen -t rsa -C "[user@mail.com]" :生成公钥key
//基本操作
git init [project_name] :初始化git仓库(新建并初始化)
git status :查看本地工作区状态
git add . :添加所有工作区改动到暂存区
git commit [-a] -m "[message]" :提交暂存区到本地版本(直接add并commit)
git checkout -- [file] :还原文件到暂存区(还没有add 退回本地修改)
git reset HEAD [file] :还原文件到版本库(已经add 退回最近一次commit)
git reset --hard HEAD^/[commit] :还原文件到最新/指定版本(已经commit 退回指定commit)
git log/reflog :查看提交/命令历史
git diff :查看工作区和暂存区的差别
git rm [file] :删除一个文件(状态会记到暂存区)
git rm --cached [file] :移除跟踪但是不删除文件(还在工作区)
git rm -r --cached [file]/. :移除跟踪且删除单个/所有文件
//分支与合并
git branch [-a]/[-l]/[-r] :列出所有分支(全部/本地/远程)
git checkout [branch_name] :切换到某个分支
git checkout -b [branch_name] [commit]/[tag] :创建并且切换到某个分支(可指定版本或tag)
git merge [branch_name] :合并某个分支到当前分支(快速合并)
git merge --no-ff -m "[message]" [branch_name] :不适用快速合并模式的merge(可添加信息)
git branch -d [branch_name] :删除某个分支(已被合并)
git branch -D [branch_name] :强制删除某个没有被合并过的分支
//暂存
git stash :存档工作区的改动
git stash save -u "[message]" :暂存工作区改动(新创建的也可以添加)
git stash list :查看工作区存档列表
git stash apply :读取栈顶临时存档
git stash drop :删除栈顶临时存档
git stash pop :读取并且删除栈顶临时存档(以上两步之和)
//标签
git tag :列出所有tag
git tag [tag_name] [commit] :在当前版本或指定版本打tag
git tag -f [tag_name] :同上,-f可覆盖原有tag
git tag -a [tag_name] -m "[message]" :在当前的commit上打含附注的tag
git chackout [tag_name] :切换到某个tag版本
git show [tag_name] :显示某个tag内容
git tag -d [tag_name] :删除本地某个tag
git push origin [tag_name]/--tags :把本地单个/所有tag推送到远程
git push origin :refs/tags/[tag_name] :删除远程某个tag
//远程仓库
git clone [remote_url] :同步一个远程库到本地(并创建)
git remote -v :查看远程仓库版本
git remote show :查看某个远程仓库信息
git remote add [remote] [remote_url] :关联本地和远程仓库(已有本地仓库,可关联多个)
git remote rm [remote] :删除远程某个仓库
//远程分支
git push [-u] origin [branch_name]:[remote_branch] :先有本地分支,再推送到远程(-u初次推送可关联)
git push origin :remote_branch/--delete [remote_branch] :删除远程的分支(传一个空分支到远程指定分支或直接--delete)
git push origin --all :推送本地所有分支到远程
git checkout -b [local_branch] origin/[remote_branch] :先有远程分支,将远程的分支拉取到本地创建(并关联)
git branch --set-upstream-to=origin/[remote_branch] :有了本地分支,将当前分支与远程某个分支建立关联
git fetch origin [remote_branch]:[local_branch] :下载远程仓库的变动到本地当前/某个分支,相当于刷新分支(不合并)
git pull origin [remote_branch]:[local_branch] :拉取远程仓库分支并合并到本地当前/某个分支(代码好像会更新到当前分支)
--分支使用:
push时,第一次使用-u可以关联分支,下次直接push即可,否则先使用--set-upstream-to=关联一下
pull时,直接拉取远程分支到本地,:分支名会自动创建分支;若先有本地分支,可使用--set-upstream-to=关联
//忽略
.gitignore :配置忽略文件
git check-ignore :检查忽略配置
git check-ignore -v [file] :查看某个文件的忽略信息