美文网首页
git的一些简单的应用与学习的基础

git的一些简单的应用与学习的基础

作者: 爱写代码的小哥哥 | 来源:发表于2018-02-17 17:20 被阅读0次

    本作者和穆雪峰的教程学到了很多实践,也截图了学习的过程,初学者可以把这个当成一些简单易上手的git使用教程,跟着我这些步骤学完这些内容,你对git掌握的也有一半以上了!各位童鞋加油!

    001安装完成第一步命令输入姓名和邮箱.png 01创建空仓库.png 02用init把目录变成git可管理的仓库.png 03在leaengit子目录下创建readme文档,并编辑字符.png 04告诉git把文件添加到仓库.png 05告诉git把文件提交到仓库.png 06第一章小结.png 07更改readme内容并保存.png 08运行 git status查看结果,结果被修改了,但没提交修改.png 09如果离开久了,忘了上次怎么修改readme文档的可以输入git diff 命令查看.png 10第一次修改readme文档提交修改.png 11执行第一次修改git commit提交到仓库之前先输入git status查看当前仓库状态以便放心.png 12第一次修改后用git commit提交到仓库.png 13提交第一次修改后输入git status查看当前仓库状态,结果是没有需要提交修改的,干净的.png 14小结.png 15第二次修改的readme文档内容.png 16第二次修改并git add提交,然后查看仓库,以便放心提交,然后用git commit提交.png 17用git log命令来查看每一次版本修改的内容和修改了什么。.png 18学会用git reset --hard HEAD来把当前GPL版本退回到上一个版本add distributed.png 19 用cat+文件名来查看当前内容版本.png 20可以继续退回上一个版本wrote a readme file 在退回之前先用git log来查看现在版本状态,最新版本已经看不到GPL版本了.png 21想把版本回到未来的话,当命令窗口还没被关闭时候,可以往上面查找,找append GPL的commit id是什么2507ec9便是id.png 22用git reset --hard+版本id来回到未来最新的GPL版本.png 23然后用cat +文档名来查看当前版本号,发现回到了未来的GPL版本.png 24如果关闭了命令窗口的话,可以用git reflog来查看命令历史版本,就可以查看到版本号,也可以回到过去或者进入未来.png 25小结.png 26第三次修改readme内容.png 27第三次修改后在learngit工作区创建一个以LICENSE命名的文本文件.png 28,然后用git add分别提交两个文本文档,然后查看结果.png 29用commit -m “修改记录”格式把add提交的暂存区两个文本文档一起提交到分支.png 30,提交后就可以用git status来查看工作区是不是干净的,正常情况提交后是干净的.png 31小结.png 31小结附图1.png 31小结附图2.png 31小结附图3.png 32管理与修改,第四次修改readme.png 33第四次修改并添加,和查看.png 34第五次修改readme.png 35提交.png 36提交后用git status查看状态,发现第二次并没有提交.png 37用git diff HEAD -- readme.txt这个命令来查看工作区和版本库的最新区别,可以发现第二次修改确实是没提交.png 38小结.png 39知识点图片.png 40如果哪天不小心加进去了,但是发现加错了,可以纠正的.png 41用git add提交了这个犯错的句子.png 42如果想更改的话,先用git status查看一下状态.png 43然后键入命令git checkout -- readme.txt可以把readm.txt在工作区的修改可以撤销.png 44用cat +文件名查看一下是否复原撤销掉错误的句子.png 45如果你提交了那个错误的句子,在commit提交之前,用git status查看一下当前状态.png 46用命令git reset HEAD+文件名,公式也可以撤销修改重回工作区,可以用HEAD从暂存区退回到工作区.png 47然后在用git status查看当前暂存区状态,可以看到是干净的,没有提交到暂存区。.png 48然后一样使用git checkout -- +文件名,公式来撤回工作区的修改.png 49最后用git status查看,结果终于清静了,干净啦。.png 50小结.png 51工作区新建文档test.txt为名.png 52学会删除文件,首先在工作区新建一个文本文档然后用git add添加,并用git commit提交.png 53删除文档的格式rm+文件名,或者自己去工作区手动删除文档也可以.png 54用rm+文件名公式删除工作区的文档后,可以用git status查看工作区状态,就可以显示删除了什么文件。.png 55用git rm+文件名可以删除版本库中该文件。.png 56然后用commit提交删除的文件.png 57如果是误删的话可以用git checkout -- +文件名来从版本库中恢复.png 58小结.png 59windows平台创建远程仓库.ssh文件.png 60创建.ssh成功后如下图.png 61.1.2.png 61.1.png 61gitHUB官网申请新的ssh密匙步骤.png 62远程仓库小结.png 63创建git远程仓库并同步到本地的仓库.png 64新建成的git仓库是空的.png 65本地learngit仓库下右键菜单点击启动GIt bash Here命令.png 66用git remote add origin git@gitHub.com:git的用户名/learngit.git用这个命令把本地仓库推送到github仓库.png 67用git push -u origin master命令把仓库推送到远程库上.png 68推送成功后就可以看到远程仓库和本地仓库是一样的.png 69添加远程仓库小结.png 70从远程克隆.png 71成功后会看到readme.md新仓库.png 72用git clone git@github.com:github的用户名/gitskills.git命令把远程仓库克隆到本地仓库.png 73从远程克隆到本地成功后,你会看到下列目录里有这样的文件,代表成功了.png 74远程克隆到本地的小结.png 75创建dev分支并切换到dev分支.png 76用git branch命令查看当前分支.png 77打开learngit文件下的readme.txt修改并加上一行.png 78然后进行提交操作.png 79dev分支工作完成后,git checkout master切换回master分支.png 80返回master查看readme.txt文件发现并没有原来添加的那一行,因为提交在dev分支上,master分支并没有变.png 81用git merge dev 把dev分支的工作成果合并到master分之上,注意到上面的Fast-forward信息,Git告诉我们,这次合并是“快进模式”,也就是直接把master指向dev的当前提交,所以合并速度非常快。当然,也不是每次合并都Fast-forward。.png 82合并后,打开readme.txt查看,那一行内容已经合并了.png 83合并完成后就可以用git branch -d dev命令删除dev分支了.png 84然后用git branch查看只剩下master分支了,当前分号会用“乘的运算符号”来表示.png 85创建合并分支小结.png 86,合并不是一帆风顺的,用git checkout -b feature1命令创建新的分支开发.png 87修改readme.txt最后一行.png 88然后在feature1分支上提交.png 89,用git checkout master切换到master分支,Git还会自动提示我们当前master分支比远程的master分支要超前1个提交.png 90然后再master分支下修改readme.txt文件.png 91然后提交.png 92现在master分支和feature1分支都各自分别有新的提交,就变成了这样的.png 93这种情况下合并,会有冲突.png 94 用git status来查看一下分支情况,发现确实是冲突了,必须自己手动解决.png 95打开readme.txt查看,会发现有这三个符号分别标记出不同分支的内容.png 96然后修改一下内容.png 97.1现在,master分支和feature1分支变成了下图所示:.png 97再次提交.png 98也可以用git log --graph --pretty=oneline --abbrev-commit,以git log命令来查看分支合并情况.png 99然后用git branch -d feature1来删除feature1分支.png 100解决冲突小结.png 101用git checkout -b dev创建并且换分支.png 102修改readme.txt文档.png 103,把修改好的readme文件提交到dev分支.png 104然后用git checkout master切换回master分支.png 105用git merge --no-ff -m merge with no-ff dev命令合并dev分支,注意--no-ff参数表示禁用fast forward.png 106用git log --graph --pretty=oneline --abbrev-commit命令查看历史分支.png 107可以看到不使用 Fast forward模式.png 108分支策略与小结.png 109修改readme.txt文件.png 110然后创建dev分支.png 111然后上传到dev分支readme文件.png 112查看当前文档,并没有提交readme文档.png 113并不是你不想提交,而是工作只进行到一半,还没法提交,预计完成还需要时间。但是,必须在两个小时内修复该bug,那就使用git stash可以把工作现场存储起来.png 114首先确定要在哪个分支上修复bug,假定需要在master分支上修复,就从master创建临时分支.png 115在master下创建临时分支issue-101.png 116然后修改readme文档.png 117把readme上传并提交.png 118修复完成bug后切换到master分支.png 119然后用git merge --no-ff -m "merged bug fix 101" issue-101命令来完成合并.png 120最后用git branch -d issue-101,删除issue-101分支.png 121然后用git checkout dev回到dev分支继续干活.png 122用用git stash list命令就可以看到当初的dev工作现场内容.png 123用git stash apply恢复,但是恢复后,stash内容并不删除.png 124用git stash drop来删除stash内容,还有一种方式是git stash pop这个可以恢复的同时也可以删除stash内容.png 125再用git stash list查看,就看不到任何stash内容了.png 126你可以多次stash,恢复的时候,先用git stash list查看,然后恢复指定的stash,用命令:git stash apply stash@{0}.png 127bug分支小结.png 128添加一个新功能时,你肯定不希望因为一些实验性质的代码,把主分支搞乱了,所以,每添加一个新功能,最好新建一个feature分支,在上面开发,完成后,合并,最后,删除该feature分支。现在,你终于接到了一个新任务:开发代号为Vulcan的新功能,该功能计划用于下一代星际飞船。.png 129开发完毕后提交并查看.png 130回到dev并进行合并.png 131如果不想开发了,就必须就地销毁这个分支.png 132销毁失败。Git友情提醒,feature-vulcan分支还没有被合并,如果删除,将丢失掉修改,如果要强行删除,需要使用命令git branch -D feature-vulcan.png 133Feature分支小结.png 134当你从远程仓库克隆时,实际上Git自动把本地的master分支和远程的master分支对应起来了,并且,远程仓库的默认名称是origin。要查看远程库的信息,用git remote.png 135或者,用git remote -v显示更详细的信息.png 136提示.png 137推送分支,就是把该分支上的所有本地提交推送到远程库。推送时,要指定本地分支,这样,Git就会把该分支推送到远程库对应的远程分支上.png 138如果要推送其他分支,比如dev,改成git push origin dev.png 139提示.png 140抓取分支,多人协作时,大家都会往master和dev分支上推送各自的修改,模拟一个你的小伙伴,可以在另一台电脑(注意要把SSH Key添加到GitHub)或者同一台电脑的另一个目录下克隆.png 141当你的小伙伴从远程库clone时,默认情况下,你的小伙伴只能看到本地的master分支。不信可以用git branch命令看看.png 142你的小伙伴要在dev分支上开发,就必须创建远程origin的dev分支到本地,于是他用这个命令创建本地dev分支.png 143他就可以在dev上继续修改,然后,时不时地把dev分支push到远程.png 144你的小伙伴已经向origin分隔符dev分支推送了他的提交,而碰巧你也对同样的文件作了修改,并试图推送用以下命令.png 145推送失败,因为你的小伙伴的最新提交和你试图推送的提交有冲突,解决办法也很简单,Git已经提示我们,先用git pull把最新的提交从origin分隔符dev抓下来,然后,在本地合并,解决冲突,再推送.png 146git pull也失败了,原因是没有指定本地dev分支与远程origin分隔符dev分支的链接,根据提示,设置dev和origin分隔符dev的链接.png 147再pull.png 148这回git pull成功,但是合并有冲突,需要手动解决,解决的方法和分支管理中的解决冲突完全一样。解决后,提交,再push.png 149多人协作小结.png 150标签管理.png 151创建标签之前先切换到打标签的分支上.png 152然后用 git checko master切换到master分支.png 153敲命令git tag +name就可以打一个新标签.png 154可以用git tag查看所有标签.png 155默认标签是打在最新提交的commit上的。有时候,如果忘了打标签,比如,现在已经是周五了,但应该在周一打的标签没有打,用git log --pretty=oneline --abbrev-commit命令来查看历史版本.png 156比方说要对add merge这次提交打标签,它对应的commit id是 2507ec9,敲入命令git tag v0.9 2507ec9.png 157然后可以用git tag查看标签.png 158注意,标签不是按时间顺序列出,而是按字母排序的。可以用git show +tagname查看标签信息,输入命令git show v1.0,可以看到,v1.0确实打在kkk999这次提交上.png 159还可以创建带有说明的标签,用-a指定标签名,-m指定说明文字,命令是git tag -a v1.3 -m "wrote a readme file" 066f214.png 160还可以通过-s用私钥签名一个标签.png 161签名采用PGP签名,因此,必须首先安装gpg(GnuPG),如果没有找到gpg,或者没有gpg密钥对,就会报错,如果报错,请参考GnuPG帮助文档配置Key.png 162用命令git show +tagname可以看到PGP签名信息.png 163创建标签小结.png 164如果打错了标签,未推送到远程,可以本地删除,用命令git tag -d v1.3.png 165如果要推送某个标签到远程,使用命令git push origin +tagname.png 166一次性推送全部尚未推送到远程的本地标签,用命令git push origin --tags.png 167如果标签已经推送到远程,要删除远程标签就麻烦一点,先从本地删除,用git tag -d v1.3命令.png 168然后,从远程删除。删除命令也是push,用git push origin refs分隔符tags分隔符v1.3.png 169操作标签小结.png 170使用Git hub.png 171用git config --global color.ui true命令可以给git适当地显示不同的颜色比如git status命令.png 172忽略特殊文件.png 173假设你在Windows下进行Python开发,Windows会自动在有图片的目录下生成隐藏的缩略图文件,如果有自定义目录,目录下就会有Desktop.ini文件,因此你需要忽略Windows自动生成的垃圾文件.png 174然后,继续忽略Python编译产生的.pyc、.pyo、dist等文件或目录.png 175加上你自己定义的文件,最终得到一个完整的.gitignore文件,内容如下.png 176最后一步提交.png 177如果你确实想添加该文件,可以用-f强制添加到Git:.png 178或者你发现,可能是.gitignore写得有问题,需要找出来到底哪个规则写错了,可以用git check-ignore命令检查,Git会告诉我们,.gitignore的第3行规则忽略了该文件,于是我们就可以知道应该修订哪个规则。.png 179忽略特殊文件小结.png 180设置别名命令为git config --global alias.缩写+全拼.png 181设置git st别名后使用效果和git status效果是一样的.png 182很多命令都可以简写.png 183为撤销修改设置别名的方法.png 184为git last设置最近一次提交信息.png 185简单地说一下设置别名的格式如下alias.+要设置的功能全拼+单引号设置别名单引号.png 186配置文件存放位置查看.png 186配置文件存放位置查看与删除别名,别名就在alias后面,对应删除就可以了+小结.png

    尊重原作者,向原作者致敬,还有对我写的入门初学知识看不懂的,可以看看穆雪峰官网的教程链接如下:

    git应用学习穆雪峰官网教程

    加油学习吧!骚年们认真努力学完这些,对你以后开发会有很大的帮助的!

    相关文章

      网友评论

          本文标题:git的一些简单的应用与学习的基础

          本文链接:https://www.haomeiwen.com/subject/hkamtftx.html