/************************************************************************ * git 笔记 * 改动文件之后,想要备份时,通常都是给文件起一个名字,并记录上日期. * 等下次查看时,又很难发觉哪里改动了.版本控制器就是为解决这些问题而诞生的. * 本文主要记录从网上摘录的一些git使用方法.内容源自以下链接. * 参考文档: * http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000 * http://www.bootcss.com/p/git-guide/ * * Tony Liu, 2016-5-23, Shenzhen *****************************************************************************/1. 安装 sudo apt-get install git2. 创建git可管理仓库: 创建空目录,进入目录 mkdir dir cd dir git init 在dir目录下会生成.git目录3. touch readme.txt git add filename 将文件保存到缓存stage 提交的到本地仓库,并添加提交说明 git commit -m "代码提交信息" 4. 查看git 状态 git status5. 查看文件和库中的区别 git diff readme.txt6. 查看日志 git log7. 回退版本 回退到最新提交版本 git reset --hard HEAD 回退到上一个版本 git reset --hard HEAD^ 回退到上上一个版本 git reset --hard HEAD^^ 回推到之前的第100版本 git reset --hard HEAD~100 git reset --hard8. 查看每一次命令 git reflog9. 回退到更新的版本 git reflog commit id通过reflog查看10. 撤销修改 git checkout -- readme.txt 一种是readme.txt自修改后还没有被放到暂存区,现在,撤销修改就回到和版本库一模一样的状态; 一种是readme.txt已经添加到暂存区后,又作了修改,现在,撤销修改就回到添加到暂存区后的状态。 总之,就是让这个文件回到最近一次git commit或git add时的状态。11. 删除 git rm readme.txt git commit -m "remove readme.txt"12. 将你的仓库连接到某个远程服务器,你可以使用如下命令添加: git remote add origin git remote add origin git@server-name:path/repo-name.git13. 本地库推送到服务器 第一次推送 git push -u origin master 以后 git push origin master14. 克隆一个库 从服务器上克隆 git clone git@github.com:michaelliao/gitskills.git 本地克隆 git clone /path/to/repository15. 创建分支 git branch dev16. 切换到分支 git checkout dev17. 查看当前分支 git branch18. 将dev于master分支合并 git merge dev19. 删除分支 合并完成之后删除 git branch -d dev 20. 查看分支合并图 git log --graph21. 删除分支后,保留分支信息 合并分支时,加上--no-ff参数就可以用普通模式合并,合并后的历史有分支,能看出来曾经做过合并,而fast forward合并就看不出来曾经做过合并。 git merge --no-ff -m "merge with no-ff" dev22. 保存现场 git stash 查看 git stash list 回复 git stash apply 删除stash内容 git stash drop 恢复并删除stash git stash pop23. 删除为未合并分支 git branch -D 24. 查看远程库信息,使用git remote -v; 本地新建的分支如果不推送到远程,对其他人就是不可见的; 从本地推送分支,使用git push origin branch-name,如果推送失败,先用git pull抓取远程的新提交; 在本地创建和远程分支对应的分支,使用git checkout -b branch-name origin/branch-name,本地和远程分支的名称最好一致; 建立本地分支和远程分支的关联,使用git branch --set-upstream branch-name origin/branch-name; 从远程抓取分支,使用git pull,如果有冲突,要先处理冲突。23. git tag 给某一个提交的版本打上标签 git tag 查看标签的文字说明 git show 删除标签 git tag -d 24. 忽略特殊文件 在Git工作区的根目录下创建一个特殊的.gitignore文件,然后把要忽略的文件名填进去,Git就会自动忽略这些文件。25. 配置别名 st就表示status: git config --global alias.st status