在我们的日常工作生活中,没有人可以记住所有应该记住的东西,以前人们可能使用纸质或其他一些易于丢失,损坏的媒介来做工作生活记录,随着社会的进步,我认为有一种工作方式可以十分理想的帮助我们进行工作的记录,那就是Git+Github+Markdown。
本文详细记录一下Git的使用。
Git的安装
Git的安装没有什么需要我们特别注意的地方,下载后一路next即可,唯一需要注意的是安装路径最好别有中文。安装完成后在开始菜单会有Git目录即说明安装成功。
Git的使用
从Git目录里点击git bash,会出现一个黑屏终端,这是一个仿Linux的终端,里面运行的是Linux的命令。
-
上Github官网创建一个账户
-
配置用户名:git config --global user.name “你自己Github的用户名”
-
配置邮箱: git config --global user.email “你自己github注册邮箱”
-
版本库问题:
1>.什么是版本库:
有名仓库,可以理解为一个目录,这个目录里所有的文件都可以被Git管理起来,每个文件的修改,删除,Git都能跟踪,以便任何时刻都有一个追踪历史,或者将来某个时刻可以还原
2>创建版本库:
在你愿意的地方创建一个文件夹 ,从终端进入文件目录(这里注意在终端输入cd 后将文件夹直接拖入终端,因为这是Linux,路径和windows肯定不同)。
常用Linux命令:
pwd:展示当前工作目录
ls -a :当前文件下内容
cd … :进入上一级目录
然后在当前目录下执行命令:git init ,这样会在你创立的文件夹下生成一个.git的文件(默认隐藏),但你可以在终端执行ls -a来找到他,注意这个.git文件千万不要修改 -
把文件添加到仓库:
在仓库创建或添加文件到仓库,执行命令 git add “文件名”,这样才算将文件添加到仓库。 -
将文件提交到仓库:
git commit -m “注释信息” -
git status 命令:可以查看当前仓库的状态,如果对仓库的文件进行任何修改,这里都有提示
-
git diff 命令:可以查看文件修改的内容。
-
git log命令:可以显示从最近到最远的提交日志
-
git --pretty=oneline 将日志以一行提交。
-
版本回退:
git reset --hard HEAD^:回退到上个版本。
git reset --hard HEAD^^:回退到上上个版本。
git reset --hard 具体版本号 回退到具体某个版本(版本号输入前几个就行,不需要全部输入) -
git reflog命令:记录了每一次执行的命令。
-
git checkout – filename:撤销的命令:
1.如果文件自动修改后还没有被放到缓存区,现在,撤销修改就会返回到和版本库一样的状态
2.如果文件已经被添加到缓存区后,又做了修改,现在,撤销修改就会回到添加到缓存区后的状态
总之,就是让这个文件回到最后一次git commit或者git add时的状态。
注:我们书写代码 add 就是提交到了缓存区,然后commit就到了版本区
创建远程仓库
通过上面的步骤我们已经完成了本地仓库的创建,接下来我们创建github的远程仓库。
-
创建SSH Key(秘钥是确定可以向gitbhub上传文件的电脑):
在终端输入:ssh-keygen -t rsa -C “邮箱”
记住保存key的地址 然后回车两级,进入地址目录(.ssh的目录)
cat id_rsa.pub,然后复制s开始到m(也就是开始到结束,别用记事本,用sublim等软件,否则会出现格式问题)
登录gitbub,进入setting,SSH选项,点击添加秘钥,然后将复制的内容粘贴进去。 -
创建远程仓库
-
关联远程仓库地址:
电脑地址(这里要转到文件目录下)关联远程仓库地址(远程仓库地址是绿色的clone那个选项的SSH下路径)
执行命令:git remote add origin git@远程仓库地址 -
删除关联 git remote rm origin
-
推送本地库内容到远程库:git push origin master
注意:需要先把远程库内容拉倒本地,否则会报错。
拉取远程库内容到本地库: git pull origin master --allow-unrelated-histories。
执行命令可能会进入vim 直接:q就可以退出来
到这步我们实现了本地库和github库的连接,我们可以将本地的内容推送到远程仓库。
从远程库到本地库
我们在实际应用中最常使用的是从远程仓库拉取文件,然后进行工作最后再提交,一下是远程到本地的操作。
- 在github选择远程库,并克隆他的地址
- 在黑屏终端输入:git clone +ssh地址
- 进入下载好的本地库进行开发工作
Git分支
作用:假设你需要开发一个新功能,但是需要两周才能完成,第一周写了50%,如果立即提交因为
代码还没有写完,不完整的代码会导致别人不能干活了,但如果等代码全部写完再一次提交,又会存在丢失每天进度的巨大风险。
有了分支可以解决上述的问题,创建一个属于自己的分支,别人看不到,还继续在原来的分支上正常工作,而我们在自己的分支上干活,想提交就提交,直到开发完毕后,再一次性合并到原来的分支上,这样既安全又不影响别人的工作。
特点:git的分支是与众不同的,无论创建,切换和删除分支,Git在非常短的时间内就能完成!无论版本库是一个文件还是一万个文件
master主分支:在版本回退中,每次提交,Git都把他们串成一条时间线,在Git里,这个分支叫做主分支,既master分支。HEAD严格来说不是志向提交,而是指向master,master才是指向提交的,所以,HEAD指向的就是当前的分支。
每次提交,master分支都会向前移动一步,这样随着不断提交,master分支也越来越长
创建分支:git branch 分支名
查看当前分支:git branch
切换分支:git checkout 分支名
创建与切换同时进行:git checkout -b 分支名
将分支内容整合到master上:
首先,切换到master分支
然后 git merge +分支名
创建远程分支:git push --set-upstream origin 分支名
切换到本地某个分支工作:
一:在github建立远程库,并克隆他的地址
二:在黑屏终端输入:git clone +ssh地址
三:git checkout -b 分支名
git pull origin 分支名
812LFWMRSH-eyJsaWNlbnNlSWQiOiI4MTJMRldNUlNIIiwibGljZW5zZWVOYW1lIjoi5q2j54mIIOaOiOadgyIsImFzc2lnbmVlTmFtZSI6IiIsImFzc2lnbmVlRW1haWwiOiIiLCJsaWNlbnNlUmVzdHJpY3Rpb24iOiIiLCJjaGVja0NvbmN1cnJlbnRVc2UiOmZhbHNlLCJwcm9kdWN0cyI6W3siY29kZSI6IklJIiwiZmFsbGJhY2tEYXRlIjoiMjAxOS0wNC0yMSIsInBhaWRVcFRvIjoiMjAyMC0wNC0yMCJ9LHsiY29kZSI6IkFDIiwiZmFsbGJhY2tEYXRlIjoiMjAxOS0wNC0yMSIsInBhaWRVcFRvIjoiMjAyMC0wNC0yMCJ9LHsiY29kZSI6IkRQTiIsImZhbGxiYWNrRGF0ZSI6IjIwMTktMDQtMjEiLCJwYWlkVXBUbyI6IjIwMjAtMDQtMjAifSx7ImNvZGUiOiJQUyIsImZhbGxiYWNrRGF0ZSI6IjIwMTktMDQtMjEiLCJwYWlkVXBUbyI6IjIwMjAtMDQtMjAifSx7ImNvZGUiOiJHTyIsImZhbGxiYWNrRGF0ZSI6IjIwMTktMDQtMjEiLCJwYWlkVXBUbyI6IjIwMjAtMDQtMjAifSx7ImNvZGUiOiJETSIsImZhbGxiYWNrRGF0ZSI6IjIwMTktMDQtMjEiLCJwYWlkVXBUbyI6IjIwMjAtMDQtMjAifSx7ImNvZGUiOiJDTCIsImZhbGxiYWNrRGF0ZSI6IjIwMTktMDQtMjEiLCJwYWlkVXBUbyI6IjIwMjAtMDQtMjAifSx7ImNvZGUiOiJSUzAiLCJmYWxsYmFja0RhdGUiOiIyMDE5LTA0LTIxIiwicGFpZFVwVG8iOiIyMDIwLTA0LTIwIn0seyJjb2RlIjoiUkMiLCJmYWxsYmFja0RhdGUiOiIyMDE5LTA0LTIxIiwicGFpZFVwVG8iOiIyMDIwLTA0LTIwIn0seyJjb2RlIjoiUkQiLCJmYWxsYmFja0RhdGUiOiIyMDE5LTA0LTIxIiwicGFpZFVwVG8iOiIyMDIwLTA0LTIwIn0seyJjb2RlIjoiUEMiLCJmYWxsYmFja0RhdGUiOiIyMDE5LTA0LTIxIiwicGFpZFVwVG8iOiIyMDIwLTA0LTIwIn0seyJjb2RlIjoiUk0iLCJmYWxsYmFja0RhdGUiOiIyMDE5LTA0LTIxIiwicGFpZFVwVG8iOiIyMDIwLTA0LTIwIn0seyJjb2RlIjoiV1MiLCJmYWxsYmFja0RhdGUiOiIyMDE5LTA0LTIxIiwicGFpZFVwVG8iOiIyMDIwLTA0LTIwIn0seyJjb2RlIjoiREIiLCJmYWxsYmFja0RhdGUiOiIyMDE5LTA0LTIxIiwicGFpZFVwVG8iOiIyMDIwLTA0LTIwIn0seyJjb2RlIjoiREMiLCJmYWxsYmFja0RhdGUiOiIyMDE5LTA0LTIxIiwicGFpZFVwVG8iOiIyMDIwLTA0LTIwIn0seyJjb2RlIjoiUlNVIiwiZmFsbGJhY2tEYXRlIjoiMjAxOS0wNC0yMSIsInBhaWRVcFRvIjoiMjAyMC0wNC0yMCJ9XSwiaGFzaCI6IjEyNzk2ODc3LzAiLCJncmFjZVBlcmlvZERheXMiOjcsImF1dG9Qcm9sb25nYXRlZCI6ZmFsc2UsImlzQXV0b1Byb2xvbmdhdGVkIjpmYWxzZX0=-ti4tUsQISyJF/zfWxSHCr+IcYrX2w24JO5bUZCPIGKSi+IrgQ0RT2uum9n96o+Eob9Z1iQ9nUZ6FJdpEW5g0Exe6sw8fLrWMoLFhtCIvVgQxEEt+M7Z2xD0esmjP1kPKXZyc/i+NCxA2EO2Sec9uifqklBGP1L3xoENAw2QsIWBfttIe6EPWhbS8TIMMr2vF/S3HrN8To5Hj5lwD/t1GHgFK1uWrhsuifAiKcVzqogybzGiR1h2+yNYTMbKxP7uPCcdYMsIyrBNVRGA3IuEJgyGQTQlFbnVQoVUTGPW2tQxprmC464wMjKi40JHh27WzjOHPwgzxDaigwn4Z0EbSpA==-MIIElTCCAn2gAwIBAgIBCTANBgkqhkiG9w0BAQsFADAYMRYwFAYDVQQDDA1KZXRQcm9maWxlIENBMB4XDTE4MTEwMTEyMjk0NloXDTIwMTEwMjEyMjk0NlowaDELMAkGA1UEBhMCQ1oxDjAMBgNVBAgMBU51c2xlMQ8wDQYDVQQHDAZQcmFndWUxGTAXBgNVBAoMEEpldEJyYWlucyBzLnIuby4xHTAbBgNVBAMMFHByb2QzeS1mcm9tLTIwMTgxMTAxMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAxcQkq+zdxlR2mmRYBPzGbUNdMN6OaXiXzxIWtMEkrJMO/5oUfQJbLLuMSMK0QHFmaI37WShyxZcfRCidwXjot4zmNBKnlyHodDij/78TmVqFl8nOeD5+07B8VEaIu7c3E1N+e1doC6wht4I4+IEmtsPAdoaj5WCQVQbrI8KeT8M9VcBIWX7fD0fhexfg3ZRt0xqwMcXGNp3DdJHiO0rCdU+Itv7EmtnSVq9jBG1usMSFvMowR25mju2JcPFp1+I4ZI+FqgR8gyG8oiNDyNEoAbsR3lOpI7grUYSvkB/xVy/VoklPCK2h0f0GJxFjnye8NT1PAywoyl7RmiAVRE/EKwIDAQABo4GZMIGWMAkGA1UdEwQCMAAwHQYDVR0OBBYEFGEpG9oZGcfLMGNBkY7SgHiMGgTcMEgGA1UdIwRBMD+AFKOetkhnQhI2Qb1t4Lm0oFKLl/GzoRykGjAYMRYwFAYDVQQDDA1KZXRQcm9maWxlIENBggkA0myxg7KDeeEwEwYDVR0lBAwwCgYIKwYBBQUHAwEwCwYDVR0PBAQDAgWgMA0GCSqGSIb3DQEBCwUAA4ICAQAF8uc+YJOHHwOFcPzmbjcxNDuGoOUIP+2h1R75Lecswb7ru2LWWSUMtXVKQzChLNPn/72W0k+oI056tgiwuG7M49LXp4zQVlQnFmWU1wwGvVhq5R63Rpjx1zjGUhcXgayu7+9zMUW596Lbomsg8qVve6euqsrFicYkIIuUu4zYPndJwfe0YkS5nY72SHnNdbPhEnN8wcB2Kz+OIG0lih3yz5EqFhld03bGp222ZQCIghCTVL6QBNadGsiN/lWLl4JdR3lJkZzlpFdiHijoVRdWeSWqM4y0t23c92HXKrgppoSV18XMxrWVdoSM3nuMHwxGhFyde05OdDtLpCv+jlWf5REAHHA201pAU6bJSZINyHDUTB+Beo28rRXSwSh3OUIvYwKNVeoBY+KwOJ7WnuTCUq1meE6GkKc4D/cXmgpOyW/1SmBz3XjVIi/zprZ0zf3qH5mkphtg6ksjKgKjmx1cXfZAAX6wcDBNaCL+Ortep1Dh8xDUbqbBVNBL4jbiL3i3xsfNiyJgaZ5sX7i8tmStEpLbPwvHcByuf59qJhV/bZOl8KqJBETCDJcY6O2aqhTUy+9x93ThKs1GKrRPePrWPluud7ttlgtRveit/pcBrnQcXOl1rHq7ByB8CFAxNotRUYL9IF5n3wJOgkPojMy6jetQA5Ogc8Sm7RG6vg1yow==