#声明:此教程是本人边学边记录的内容,有错误的地方还请指正。
安装好Git后,在开始菜单里找到“Git”->“Git Bash”,所有命令都在此窗口执行。
1、创建版本库
mkdir learngit(目录名,此目录会建在当前安装Git的目录下)
cd learngit(进入learngit目录)
pwd(显示当前完整目录,C:\Documents and Settings\Administrator\learngit)
git init(初始化Git仓库,当前目录已成为Git可以管理的仓库,此时目录下会自动增加一个.git目录)
2、添加修改及回退
首先在learngit目录下新建一个readme.txt文本文件,并写几个任意内容进去,以便后续使用。(一定要放到learngit目录下(子目录也行),因为这是一个Git仓库,放到其他地方Git再厉害也找不到这个文件。)
git add readme.txt(将readme.txt文件放进暂存区)
git commit -m “message”(将暂存区的内容提交到仓库,-m后面是本次提交说明)
git status(时刻掌握仓库当前的状态)
$ git status # On branch master # Changes not staged for commit: # (use "git add <file>..." to update what will be committed) # (use "git checkout -- <file>..." to discard changes in working directory) # # modified: readme.txt # no changes added to commit (use "git add" and/or "git commit -a")
此时说明readme.txt已经修改
git diff readme.txt(查看修改的内容)
经过上面两步添加就已完成,修改和添加步骤一样,不再赘述。
*修改补充:git log (显示从最近到最远的提交日志含有commit_id)
git reflog(记录每一次命令commit_id)
git reset --hard head^(head指向当前版本,head^回退到上一版本,head^^回退到上上个版本,head~100回退到上100个版本,head commit_id回退到commit_id版本)
①第一次修改 -> git add
-> 第二次修改 -> git commit
当你用git add
命令后,在工作区的第一次修改被放入暂存区,准备提交,但是,在工作区的第二次修改并没有放入暂存区,所以,git commit
只负责把暂存区的修改提交了,也就是第一次的修改被提交了,第二次的修改不会被提交。
②当修改readme.txt后,还未添加进暂存区即还未执行git add命令时,可用命令git checkout -- readme.txt 撤销修改;若已执行add即已放在暂存区时,可用git reset head readme.txt 撤销修改
小结
场景1:当你改乱了工作区某个文件的内容,想直接丢弃工作区的修改时,用命令git checkout -- file。
场景2:当你不但改乱了工作区某个文件的内容,还添加到了暂存区时,想丢弃修改,分两步,第一步用命令git reset HEAD file,就回到了场景1,第二步按场景1操作。
景3:已经提交了不合适的修改到版本库时,想要撤销本次提交,参考版本回退,不过前提是没有推送到远程库。
3、删除
①误删:用 git checkout -- readme.txt命令恢复到最新版本
②直接删除:用git rm readme.txt删掉,并执行git commit -m “message”命令
4、远程仓库
说远程仓库前,需要获取SSH Key(本地Git仓库和GitHub仓库之间传输的介质)
①添加远程库:
第1步:创建SSH Key。在用户主目录下,看看有没有.ssh目录,如果有,再看看这个目录下有没有id_rsa和id_rsa.pub这两个文件,如果已经有了,可直接跳到下一步。如果没有,打开Shell(Windows下打开Git Bash),创建SSH Key:ssh-keygen -t rsa -C "youremail@example.com"(需要把邮件地址换成你自己的邮件地址,然后一路回车,使用默认值即可,由于这个Key也不是用于军事目的,所以也无需设置密码)如果一切顺利的话,可以在用户主目录里找到.ssh目录,里面有id_rsa和id_rsa.pub两个文件,这两个就是SSH Key的秘钥对,id_rsa是私钥,不能泄露出去,id_rsa.pub是公钥,可以放心地告诉任何人。
第2步:登陆GitHub,打开“Settings”-->“SSH and GPG keys"-->"New SSH Key"
第3步:把本地库的内容推送到远程库上。
使用命令git remote add origin git@GitHub.com:path/repo-name.git进行库关联;(path为你的GitHub账户名,repo-name为新建的库名)
关联后,使用命令git push -u origin master第一次推送master分支的所有内容;
此后,每次本地提交后,只要有必要,就可以使用命令git push origin master推送最新修改;
②从远程库克隆:
5、分支管理
git clone git@GitHub.com:path/repo-name.git(path为你的GitHub账户名,repo-name为新建的库名)
①创建与合并分支:
未完待续,持续更新中。。。。查看分支:git branch
创建分支:git branch <name>
切换分支:git checkout <name>
创建+切换分支:git checkout -b <name>
合并某分支到当前分支:git merge <name>
删除分支:git branch -d <name>