Git 学习笔记
Git 学习笔记
1. 创建版本库 a. 初始化一个仓库: git init b. 添加文件到 Git 仓库 . 第一步: git add <file> . 第二部: git commit -m "描述" c. 其它命令: . 新建目录: mkdir <文件夹名字> . 查看隐藏目录: ls -ah . 显示当前路径名: pwd 2. 时光机穿梭 . 随时掌握工作区的状态: git status . 查看文件的修改内容: git diff a. 版本回退 . 查看提交的历史, 以便退回到任意版本: git log . 重返未来终极命令(我喜欢): git reflog . HEAD指向当前版本,上一个版本为HEAD^, 以此类推HEAD^^...; 有个简写HEAD~100 . 版本穿梭: git reset --hard commitid/(HEAD^)/(HEAD~数字) (commitid可以通过 git log 或者 git reflog来获取) b. 工作区和暂存区 . 主要是理论: 文件往Git版本库里添加的时候,是分两步执行的: 第一步是用git add把文件添加进去,实际上就是把文件修改添加到暂存区; 第二步是用git commit提交更改,实际上就是把暂存区的所有内容提交到当前分支。 因为我们创建Git版本库时,Git自动为我们创建了唯一一个master分支,所以,现在,git commit就是往master分支上提交更改。 可以简单理解为,需要提交的文件修改通通放到暂存区,然后,一次性提交暂存区的所有修改。 c. 管理修改 . Git是如何跟踪修改的: 每次修改,如果不add到暂存区,那就不会加入到commit中。 . 命令 git diff HEAD -- <file> : 可以查看工作区和版本库里面最新版本的区别。 d. 撤销修改 . 命令 git checkout -- <file>:(场景1) 当你改乱了工作区某个文件的内容,想直接丢弃工作区的修改时。 . 命令 git reset HEAD <file>:(场景2) 当你不但改乱了工作区某个文件的内容,还添加到了暂存区时,想丢弃修改, 分两步,第一步用 git reset HEAD <file>,就回到了场景1, 第二步用 git checkout -- <file>。 . 场景3:已经提交了不合适的修改到版本库时,想要撤销本次提交,参考 a版本回退 一节,不过前提是没有推送到远程库。 e. 删除文件 . 命令 git rm: 用于删除一个文件。如果一个文件已经被提交到版本库,那么你永远不用担心误删, 但是要小心,你只能恢复文件到最新版本,你会丢失最近一次提交后你修改的内容。 然后 git commit -m "描述" c. 其它命令: rm <file>: 在工作区移除某个文件 3. 远程仓库 .第1步:创建SSH Key。在用户主目录下,看看有没有.ssh目录,如果有,再看看这个目录下有没有 id_rsa和id_rsa.pub这两个文件,如果已经有了,可直接跳到下一步。如果没有,打开Shell(Windows下打开Git Bash), 创建SSH Key: $ ssh-keygen -t rsa -C "1356988206@qq.com" 之后一路回车即可。 .第2步:登陆 GitHub,打开 Account settings,添加 SSH Keys 即可。 ps: 为什么GitHub需要SSH Key呢? 因为GitHub需要识别出你推送的提交确实是你推送的,而不是别人冒充的,而Git支持SSH协议, 所以,GitHub只要知道了你的公钥,就可以确认只有你自己才能推送。 当然,GitHub允许你添加多个Key。假定你有若干电脑,你一会儿在公司提交,一会儿在家里提交, 只要把每台电脑的Key都添加到GitHub,就可以在每台电脑上往GitHub推送了。 a. 添加远程库 . 本地 git 仓库关联一个远程库, 使用命令: git remote add origin <地址 https://github.com/SorrowX/learngit.git> . 关联后推送 master 分支的所有内容(也只有第一次使用这个命令), 使用命令: git push -u origin master . 每次本地提交后,只要有必要,就可以使用命令: git push origin master 推送最新修改 ps: 使用https除了速度慢以外,还有个最大的麻烦是每次推送都必须输入口令。 b. 从远程库克隆 . 要克隆一个仓库,首先必须知道仓库的地址, 然后使用命令: git clone <地址 git@github.com:SorrowX/learngit2.git>
开心的做一个无忧无虑的码农,争取每天进步一点。