本文是在学习该教程时/后做的笔记。 我现在用git基本都是用Github Desktop,前面的是下载地址。用起来方便又快捷。事实上我也不会用git的命令o( ̄︶ ̄)o所以今天稍微学一下。
git init
切换到想要创建仓库的文件夹,执行命令git init
就会在该文件夹下创建一个.git的文件夹,这个文件夹是隐藏的。
git add/git commit
使用命令git add whatever.txt
将文件添加到仓库。使用命令git commit -m "wrote a file"
将文件提交到仓库,-m后面的是描述这份文件你改了什么。其实就是相当于desktop的一个按钮,按一下就把全部有改动文件都提交了。 这样就完成了提交一份文件。这里就会有疑问了,为什么设计成先add再commit?直接commit不就行了?因为commit可以提交多份文件,你可以使用add命令一份一份地添加文件,再使用commit一次性提交到仓库。 该命令指示推送到本地仓库,并非远程仓库。
git status
查看仓库当前的修改状态
git diff
发现某份文件被修改了,但是忘记改了什么怎么办?使用命令git diff modified_file.txt
查看,它会显示文件哪里被修改了。diff就是difference的意思。
git log
git可以记住你的历史提交版本,如果有一天电脑损坏,自己干了什么完全忘记,可以使用git log
命令。它会显示以前所有的历史记录。这条命令会显示很详细的信息,但是就是因为信息太详细了,人可能看不过来,可以加上--pretty=oneline
来限制。类似c3fca95239a4bbe21ee2991e0a914fb522060e74
这种是版本号(commit id)。
git rest
该命令可以回退版本。git reset --hard HEAD^
,命令里的HEAD代表当前版本,^代表上一个版本,如果想要回退至前100个版本,可以使用HEAD~100。 也可以直接指定commit id,如git reset --hard c3fca95239a4bbe21ee2991e0a914fb522060e74
,commit id可以不写全,写个开头就行了git reset --hard c3fca
注意回退版本后,如果关闭git bash那么就无法查询到该版本之后的所有版本。
git reflog
该命令记住了你每一步操作,如果回退版本后后悔了,可以使用该命令查询以前的commit id。
git checkout --filename
把文件夹在工作区的修改全部撤销。总之,就是让这个文件回到最近一次git commit或git add时的状态。 参考文章
git rm
删除文件,与linux命令类似。
git remote
将本地的仓库和远程的仓库关联,使用命令git remote add origin git@github.com:github_account_name/repository_name.git
注意将github_account_name和repository_name分别替换成github账号名和仓库名。添加关联后,远程库的名字就是origin,这是Git默认的叫法,也可以改成别的。下一步,就可以把本地库的所有内容推送到远程库上。
git push
git push -u origin master
>把本地库的内容推送到远程,用git push命令,实际上是把当前分支master推送到远程。 由于远程库是空的,我们第一次推送master分支时,加上了-u参数,Git不但会把本地的master分支内容推送的远程新的master分支,还会把本地的master分支和远程的master分支关联起来,在以后的推送或者拉取时就可以简化命令。 从现在起,只要本地作了提交,就可以通过命令: git push origin master
把本地master分支的最新修改推送至GitHub,现在,你就拥有了真正的分布式版本库!
git clone
上面说了将本地仓库和远程仓库关联,并将本地仓库的文件推送到远程仓库,那么自然也可以从远程仓库clone文件到本地仓库。 使用命令:git clone git@github.com:github_account_name/repository_name.git
还可以从https://github.com/yan624/yan624.github.io.git这样的地址克隆
对分支的管理
字太多,不想打了。看下面教程。 教程
git checkout -b branch_name
创建名为branch_name的分支并切换到该分支,-b参数代表切换。
git branch
查看当前分支,如果分支之前有*就代表这个分支是主分支。
git merge branch_name
合并分支
git branch -d branch_name
删除名为branch_name分支
合并分支发生冲突
强大的分支功能
bug分支。将当前工作暂存,先修改出现的bug
feature分支
与上面类似,无非概念不同