0%

git学习记录

本文是在学习该教程时/后做的笔记。 我现在用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分支

与上面类似,无非概念不同

多人协作

教程

git rebase

教程

标签

教程

使用github

教程

使用码云

教程

配置文件的更多配置

教程