Git常用命令

Git常用命令

** 生成rsa-key
ssh-keygen -t ssh-rsa -C "uername@email.com"

** 创建版本库
$ git init

** 验证github是否开通
$ ssh -T git@github.com
Hi tianqixin! You've successfully authenticated, but GitHub does not provide shell access.

** 添加远程仓库
$ git remote add your-origin git@github.com:yourGithubAccount/yourGit.git
your-origin 这个是远程库的名称,可以改成别的名称

** 推送本地库的所有内容到远程仓库上
$ git push -u your-origin master
这是把本地当前名叫 master 的分支添加到远程库,第一次推送加 -u 参数,以后不需要加
$ git push your-origin master

** 从远程分支拉取更新到本地(如果推送到远程失败,先用git pull获取远程的新提交)
$ git pull

** 提取远程仓库本到地
$ git fetch your-origin
$ git merge master

** 检出-从远程检出分支本到地
$ git clone git@github.com:yourGithubAccount/yourGit.git

** 检出到子目录
$ git clone git@github.com:yourGithubAccount/yourGit.git subdir

** 本地分支与远程分支建立连接关系
$ git branch --set-upstream branch-name remote/branch-name


** 删除远程仓库
$ git remote rm your-origin

** 添加新增和修改的单个文件
$ git add readme.txt

** 添加新增和修改的所有文件
$ git add *

** 删除文件
$ git rm readme.txt

** 提交修改到版本库
$ git commit -m "提交说明"

** 查看状态
$ git status

** 查看修改的内容
$ git diff readme.txt

** 查看修改日记
$ git log

** 返回到某个指定的版本
$ git reset --hard 版本编号
$ git reset --hard head~版本序号

** 撤销提交
$ git checkout -- readme.txt
"--"符号不能漏掉,否则就不是撤销修改,而是切换到别的分支了
或者用reset命令撤销
$ git reset head readme.txt

** 撤销当前分枝的所有修改
git checkout -- .

** 创建本地分支
$ git checkout -b branchName
git checkout命令加上-b参数表示创建并切换,相当于以下两条命令:
$ git branch branchName
$ git checkout branchName

** 查看本地分枝
$ git branch

** 查看远程分枝
$ git branch -a

** 创建远程分支到本地
$ git checkout -b local-branchname origin/remote_branchname

** 切换分支
git checkout branchName

** 合并分支-- 快速合并(把branchName分支合并到当前分支)
$ git merge branchName

** 合并分支--普通合并(有合并记录)
$ git merge --no-ff -m "merge with no-ff" branchName

** 删除分支
$ git branch -d branchName

** 隐藏工作区
% git stash
如果分支有未提交的改动,则不能切换分支,使用git Stash后可以切换分支,在切换的分支上做修改或创建新的分支

** 恢复工作区
$ git stash list //查看工作区
$ git stash apply //恢复工作区
$ git stash drop //删除工作区
$ git stash pop //恢复工作区并删除工作区内容
$ git stash apply stash@{0} //恢复指定的工作区,如果有多个