git指令备忘录

版权声明:欢迎转载,转载请注明出处 http://blog.csdn.net/itdo_just https://blog.csdn.net/itdo_just/article/details/82927134

参考廖雪峰的Git教程整理的,官网链接:
https://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000


git分区:工作区->(add)暂存区->(commit)版本库

  1. 安装
    sudo apt-get install git

  2. 创建版本库
    空目录下:mkdir learngit
    cd learngit
    git init
    ls -ah 查看是否有隐藏的.git目录

  3. 创建文件
    vim readme.txt 写入一些内容
    git add readme.txt 文件添加到仓库(可以一次add多个)
    git commit -m “wrote a readme file” 把文件提交到仓库
    注意:add是从工作区提交到暂存区,commit是从暂存区提交到版本库

  4. 修改后可以查看哪些文件被修改过
    git status

  5. 查看具体修改了什么
    git diff readme.txt

  6. 查看提交历史,以便确定要回退到哪个版本
    git log
    git log --pretty=oneline 减少输出内容,每行的头部为commid id

  7. 回退到上一个版本
    git reset --hard HEAD^

  8. 指定回到之前回退掉的某个版本
    git reset --hard 1094a(这个号码为回退版本的commid id)

  9. 查看命令历史,以便确定要回到未来的哪个版本
    git reflog

    扫描二维码关注公众号,回复: 3576201 查看本文章
  10. 查看工作区和版本库里面最新版本的区别
    git diff HEAD - - readme.txt

  11. 丢弃工作区的修改
    git checkout - - readme.txt

  12. 把暂存区的修改撤销掉,重新放回工作区
    git reset HEAD <file>
    如果后悔修改了文件可以先撤销暂存区回到工作区再用11的指令丢弃修改

  13. 直接删除工作区文件
    rm <file>

  14. 从版本库中删除该文件
    git rm <file>
    git commit -m “remove file”

  15. 误删工作区文件,从版本库恢复出来
    git checkout - - <file>

  16. 创建SSH Key
    ssh-keygen -t rsa -C "[email protected]"
    你需要把邮件地址换成你自己的邮件地址,然后一路回车,使用默认值即可
    可以在目录下找到.ssh目录,里面有id_rsa和id_rsa.pub两个文件
    id_rsa是私钥,不能泄露出去,id_rsa.pub是公钥,可以放心地告诉任何人

  17. 使用github作为远程git库
    登陆GitHub,打开“Settings”,“SSH and GPG keys”页面:
    点“New SSH key”,填上任意Title,在key文本里粘贴id_rsa.pub,然后点击“Add SSH Key”
    这个key主要从来识别出你推送的提交确实是你推送的

  18. github上创建新的仓库
    在右上角找到“Create a new repo”按钮

  19. 本地库关联github仓库
    git remote add origin [email protected]:michaelliao/learngit.git
    michaelliao替换成你自己的GitHub账户名
    添加后,远程库的名字就是origin,这是Git默认的叫法,也可以改成别的
    learngit.git为仓库名

  20. 推送内容到远程库
    git push -u origin master
    把当前分支master推送到远程,由于远程库是空的,我们第一次推送master分支时,加上了-u参数用于关联远程库,后面每次提交都直接使用下面的指令:
    git push origin master

  21. 克隆一个本地库
    git clone [email protected]:yourgithub/repo.git
    cd repo
    ls

  22. 分支在实际中有什么用呢?假设你准备开发一个新功能,但是需要两周才能完成,
    第一周你写了50%的代码,如果立刻提交,由于代码还没写完,不完整的代码库会导致别人不能干活了。
    如果等代码全部写完再一次提交,又存在丢失每天进度的巨大风险。
    创建dev分支
    git checkout -b dev (-b参数表示创建并切换,相当于以下两条命令)
    git branch dev
    git checkout dev

  23. 查看当前分支
    git branch (当前分支前面会标一个*号)

  24. 切换回master分支
    git checkout master

  25. 把dev分支的工作成果合并到master分支上
    git merge dev

  26. 删除分支
    git branch -d dev

  27. 查看分支合并情况
    git log --graph --pretty=oneline --abbrev-commit

  28. 删除dev分支
    git branch -d dev

  29. 当需要到另一个分支去处理事情(bug),可以把当前工作区储藏起来,等以后恢复现场后继续工作
    git stash

  30. 查看之前储藏的工作现场列表
    git stash list

  31. 恢复之前的储藏工作现场
    git stash pop
    恢复指定的stash
    git stash apply stash@{0} (最后这个参数可以通过stash list获得)

  32. 合并分支并禁用Fast forward,加上"–no-ff"
    git merge --no-ff -m “merge with no-ff” dev
    -m 是描述信息,dev为合并进master上的分支

  33. 丢弃一个没有被合并过的分支
    git branch -D <name>

  34. 查看远程库的信息
    git remote
    git remote -v 显示更详细的信息

  35. 从本地推送分支
    git push origin <branch-name>

  36. 如果推送失败(试图推送的提交有跟别人冲突),所以需要先抓取分支看看
    git pull 用git pull把最新的提交从origin/dev抓下来

  37. 指定本地分支(dev)和远程分支(origin/dev)的链接,否则pull可能失败
    git branch --set-upstream-to=origin/dev dev

    本地推送分支,如果失败
    失败则先用git pull抓取相应的分支
    建立本地分支和远程分支的链接
    再pull则成功
    手动解决合并冲突,再commit然后push

  38. 把分叉的提交历史“整理”成一条直线,看上去更直观。
    git rebase

  39. 新建一个标签,默认为HEAD,也可以指定一个commit id;
    git tag <tagname>

  40. 指定标签信息
    git tag -a <tagname> -m “blablabla…”
    -a为标签名,-m为说明

  41. 查看所有标签
    git tag

  42. 推送一个本地标签到远程库
    git push origin <tagname>

  43. 推送全部未推送过的本地标签
    git push origin --tags

  44. 删除一个本地标签
    git tag -d <tagname>

  45. 删除一个远程库的标签
    git push origin :refs/tags/<tagname>

  46. 忽略某些文件时,需要编写.gitignore
    .gitignore文件本身要放到版本库里,并且可以对.gitignore做版本管理

  47. 配置别名
    git config --global alias.st status
    告诉Git,以后st就表示status

猜你喜欢

转载自blog.csdn.net/itdo_just/article/details/82927134