git init #初始化本地版本库
git clone [email protected]:xxxxxx/****.git #从xxxx用户的****仓库克隆远程库到本地
git status #查看当前仓库的状态。显示Changes not staged for commit 说明文件的内容发生了变化,但还没有放到暂存区。要暂存这次更新,需要运行 git add 命令添加文件及git commit添加其修改说明;显示nothing to commit, working tree clean 表示当前没有需要提交的修改,而且工作目录是干净(working tree clean)的。
git diff <file> #可以查看文件做了什么修改
git diff #比较的是工作区和暂存区的差别
git diff –cached #比较的是暂存区和版本库的差别
git diff HEAD #可以查看工作区和版本库的差别
git add <file> #将工作区保存的文件添加到暂存区
git rm <file> #将暂存区的文件删除,同样需要commit
git commit -m "message" #将暂存区里的改动给提交到本地的版本库。message是本次提交的说明,可以输入任意内容,当然最好是有意义的,这样你就能从历史记录里方便地找到改动记录;添加参数-m表示可以直接输入后面的“message”,如果不加 -m参数,那么是不能直接输入message的,而是会调用一个编辑器一般是vim来让你输入这个message。每次使用git commit 命令我们都会在本地版本库生成一个40位的哈希值,这个哈希值也叫commit-id,相当于唯一标识,commit-id在版本回退的时候是非常有用的,它相当于一个快照,可以在未来的任何时候通过与git reset的组合命令回到这里。
git checkout --<file> #撤销工作区文件的修改,恢复文件
git log #查看修改历史,显示从最近到最早的提交日志
git log --pretty=online #只查看commit_id版本号和提交时的备注信息
git reflog #查看所有分支的所有操作记录(包括已经被删除的 commit 记录和 reset 的操作)
git reflog -n #指定显示历史版本记录的条数
例如执行 git reset --hard HEAD~1,退回到上一个版本,用git log则是看不出来被删除的commit_id,用git reflog则可以看到被删除的commit_id,我们就可以买后悔药,恢复到被删除的那个版本。
git reset #回退版本
git reset --hard HEAD^ #回退到上一个版本,HEAD表示当前版本,上一个版本就是HEAD^,上上一个版本就是HEAD^^,往上100个版本HEAD~100
git reset --hard commit_id #回退到指定的commit_id版本号,commit_id不需要写全
git checkout *** #切换到***分支
git checkout -b *** #创建***分支并且切换到***分支
git checkout -b *** xxx/*** #创建远程xxx库的***分支到本地***分支
git branch #查看所有分支名,* 表示当前所在分支
git branch *** #创建***分支
git branch -d *** #删除***分支,-d参数可以改为-D,为强行删除没有被合并的分支
git merge *** #将***分支合并到当前分支(默认启用fast forward模式)
git merge --no-ff -m "message" ***#禁用fast forward模式合并分支,在merge时生成一个新的commit
git log --graph --pretty=oneline --abbrev-commit #查看分支合并情况
git stash #把所有未提交的修改(包括暂存的和非暂存的)都保存起来,用于后续恢复当前工作目录
git stash pop #回到存储的工作现场
git remote #查看远程仓库信息,-v参数可以查看更详细的信息
git push origin master #将本地的origin仓库的mster分支推送到远程oigin仓库对应的msater分支
git pull 抓取远程分支的更新并合并
git branch --set-upstream-to=xxx/*** *** #指定本地***分支与远程库xxx的***分支链接
git tag #查看所有标签
git tag v1.0 #给当前分支打标签1.0版本
git tag v1.0 commit_id #给指定的提交打标签
git tag -a v0.1 -m "message" commit_id #创建带有说明的标签,用-a
指定标签名,-m
指定说明文字
git push origin <tagname> #推送某个版本的标签到远程,--tags #推送所有标签
git tag -d v0.1 #删除本地标签
git push origin :refs/tags/v0.1 #删除远程origin库的标签
git show v1.0 #显示1.0版本的具体信息
git last #最近一次提交
git config --global alias.** checkout #设置checkout的别名为**