美文网首页
git学习总结

git学习总结

作者: Lxs_597 | 来源:发表于2017-08-15 03:35 被阅读0次

                                           Git for windows

    本文只是自己的一些学习总结,方便自己查看,如果对您阅读不适,抱歉!!!

    常用命令(省略$):git --help(查看命令);mkdir (创建目录);

    git init (将文件变成Git可管理的仓库);

    ls -ah(查看.git隐藏文件); pwd(当前目录); git add(添加文件到仓库);

    git commit -m(上传文件到仓库); git diff(查看修改内容);

    git status(查看当前状态); git log(查看版本); git log --pretty=oneline(查看版本);

    git reflog(查看历史版本); git reset --hard HEAD^(返回到上一个版本);

    cat mygit.txt(查看当前版本内容);git checkout -- mygit.txt(未add撤销修改);

    git reset HEAD mygit.txt->git checkout -- mygit.txt(add后撤销修改);

    rm mygit.txt -> git checkout -- mygit.txt(撤销删除);

    rm mygit.txt -> git rm mygit.txt -> git commit (删除文件);

    $ git remote add origin git@github.com:lxh597/learngit.git(关联github);

    $ git push -u origin master(上传到github仓库);

    $ git push origin master(本地修改后推送到github);

    $ git clone git@github.com:lxh597/warehouse.git(克隆到本地);

    $ git checkout -b dev(创建并切换至dev分支,相当于git branch dev + git checkout dev); $ git branch(查看当前分支);

    $ git branch dev(创建dev分支); $ git checkout dev(切换至dev分支);

    $ git merge dev(讲dev分支合并到当前分支); $ git branch -d dev(删除dev分支);

    $ git merge --no-ff -m “msg” dev(不适用fast forword合并,log能看出曾经合并过);

    $ git stash(储存当前工作现场); $ git stash list(查看储存列表);

    $ git stash pop(恢复并删除stash list内容);

    $ git stash 可多次储存,用git stash list查看,然后使用git stash apply stash@{0}恢复,使用git stash drop删除;

    $ git remote -v(查看远程仓库信息)

    $ git tag v1.0(创建标签);

    $ git log --pretty=oneline --abbrev-commit -> $ git tag v0.9 53ef5ce (根据commit id);

    $ git tag(查看标签); $ git show v1.0(查看标签信息);

    $ git tag -a v0.1 -m “version 0.1” 3a9175f (-a 标签名 -m说明);

    $ git push origin v1.0(推送标签到远程);

    $ git push origin --tags(所有未推送的标签推送到远程);

    $ git tag -d v1.0(删除标签);

    $ git push origin :refs/tags/v0.9(删除推送到远程的标签);

    $ git push origin -d tag v0.1(同上);

    一、下载安装

    1、github 搜索git for windows

    2、选择第一个waylau/git-for-win

    3、选择Git for windows Setup下载

    4、下载完成后看到如下图标 双击安装

    5、点击下一步

    6、最后True Type font为可选项(字体)

    7、点击下一步

    8、此项无影响,默认勾选第一个

    9、选择换行符风格

    1)checkout为windows换行符,commit为Unix风格;

    2)checkout时不做任何处理,commit为Unix风格;

    3)文件的换行符不做任何处理;

    10、选择MinTTY窗口,美观;

    11、默认设置即可;

    12、点击install安装;最后点击finish即可;

    13、安装完成后开始菜单会看到;目录下shift+右键也会看到Git Bash 和Git GUI 选择Git Bash;

    二、创建版本库

    安装完成后打开git命令行输入:

    $git config --global user.name  “ your name”

    $git config --global user.email  “ 123456789@qq.com”  (你的邮箱地址)

    因为git是分布式版本控制系统,每台机器都必须有自己的名字和邮箱;--global表示此设备上的所有Git仓库都会使用这个配置,也可以为不同仓库指定不同的用户名和email地址;

    选择一个合适地方创建一个空文件夹

    $ mkdir filename (创建一个空文件夹)

    $ cd filename (进入该文件夹目录)

    $ pwd (查看当前目录)

    $ git init (将这个目录变成Git可以管理的仓库)出现如下信息表示创建成功,并为一个空仓库

    Initialized empty Git repository in F:/learngit/learn/.git/

    此时该目录下多了一个.git的隐藏目录,此目录是Git跟踪管理版本库的,切勿修改,可能会破坏Git仓库;此文件可以设置显示隐藏文件或者输入ls -ah命令查看;

    在配置好的Git仓库目录下新建一个mygit.txt文件(名字随意),我使用的sublime,字符编码设置为utf-8;切勿使用windows文本文档(原因百度);

    内容(随意):Git is a version control system.

    Git is free software.

    一定要放到配置的Git仓库文件目录下,不然Git找不到文件;

    $ git add filename.txt

    将文件添加到Git仓库;执行以上代码没有任何提示,表示添加成功,Unix哲学“没有消息就是好消息”;

    添加文件可以一次添加多个(如:$ git add filename1.txt  filename2.txt)

    将文件提交到仓库,输入如下命令:

    $ git commit -m “wrote a mygit file” (-m后面是提交说明,建议输入一些有意义的内容,方便自己或者别人阅读)

    上面提示告诉你一个文件改动(添加mygit.txt文件),插入两行内容(文件有2行内容)

    $ git add 可以一次添加一个也可以添加多个文件,可反复多次使用,$ commit 一次将所有文件提交完成;

    三、基本操作

    Git is a distributed version control system.

    Git is free software.

    修改mygit.txt文件如上,命令行输入$ git status

    $git status可以查看仓库当前的状态,上面告诉我们mygit文件被修改过,但是还没有被提交;

    但$ git status不能查看具体被修改的内容,如果不记得上次怎么修改的mygit文件,可以使用$ git diff命令查看;

    -为被删除的内容 +为新增内容 白色为未修改内容;

    使用$ git add mygit.txt将修改过后的文件提交,没有任何提示

    再次输入$ git status,最后一行提示将要被修改的文件包括mygit.txt

    下一步使用$ git commit -m ”update mygit.txt”提交修改

    一个文件被修改,插入一行,删除一行;

    使用$ git status 查看当前状态

    上面提示告诉你没有需要提交的修改,工作目录是干净的;

    要随时使用git status掌握工作区状态,如果告诉你有文件被修改过,可以使用$ git diff查看

    再次使用修改文件内容如下并保存:

    Git is a distributed version control system.

    Git is free software distributed under the GPL.

    $ git add mygit.txt;

    $ git commit -m “update twice”;

    使用$ git log可以查看修改文件的信息(从近到远),如下:

    也可使用$ git log --pretty=oneline,结果如下:

    后面为commit -m“”引号中的说明(所以前面说到最好输入有意义的内容),前面为commit id,即为版本号(如下图);表示为当前版本;上一个版本为HEAD^,上上个版本为HEAD^^,上100个版本为HEAD100个^。。。(HEAD-100)

    使用$ git reset --hard HEAD^ 回退到上一个版本:

    使用$ cat mygit.txt查看当前版本内容为上一版本内容:

    而你的文件里面也会变成这样:

    使用$ git log查看,发现最新版本已经被删除:

    如果第二天你突然又想恢复到前面最新的版本,这是你发现你已经找不到这个版本的commit id;你可以使用:$ git reflog

    然后 $ git reset --hard 9899562

    使用 $ cat mygit.txt 然后你的文件也会变成这样:

    四、管理修改

    将mygit文件修改,添加两段内容:

    Git is a distributed version control system.

    Git is free software distributed under the GPL.

    Git has a mutable index called stage.

    Git tracks changes.

    依次使用$ cat mygit.txt ; $ git add mygit.txt ; $ git status输出如下内容:

    然后再次修改mygit文件:

    Git is a distributed version control system.

    Git is free software distributed under the GPL.

    Git has a mutable index called stage.

    Git tracks changes of files.

    输入$ cat mygit.txt 输出:

    使用$ git commit -m “change threetimes” 提交修改,然后查看状态$ git status:

    此处提示有未提交的修改balabala

    输入$ git diff HEAD --mygit.txt 查看工作区(文件)和版本库(.git隐藏文件)中最新版本的区别:

    此时文件中是这样:

    而版本库中是这样:

    可见第二次修改并没有被提交,因为git版本库分为暂存区和master分支,HEAD为指向master分支的指针即当前版本的指针,使用git修改文件时,git add是将文件添加到暂存区,而git commit -m是将暂存区的修改提交到master分支;

    第二次修改时未add到暂存区,所以不会被提交。

    所以正确的操作方式应该是:

    第一次修改->add->第二次修改->add->commit;

    五、撤销修改

    git撤销修改分两种,第一种是没有add到暂存区,第二种是已经add到暂存区的,下面我们在mygit文件中添加一行(可用cat 命令查看):

    Git is a distributed version control system.

    Git is free software distributed under the GPL.

    Git has a mutable index called stage.

    Git tracks changes of files.

    oh shit.

    此时修改未被add,可使用$ git checkout -- mygit.txt,这样修改就被撤销掉了:

    如果修改后的文件已经被add,但没有commit,此时可使用$ git reset HEAD mygit.txt将文件从暂存区的修改撤销掉,如图1倒数第二行提示,$ git reset HEAD mygit.txt 后使用第一步的$ git checkout -- mygit.txt,即可将文件修改撤销,如图2:

    六、删除文件

    首先在工作区新建一个delete.txt文件,并且add commit:

    使用rm delete.txt命令删除文件,此时你在工作区中已经看不到此文件,但是你使用git status命令,会出现如下提示:

    此时分两种情况,误删或者确认删除:

    如果是误删可使用$ git checkout -- delete.txt ,同时你发现文件回到了工作区:

    如果确定要删除此文件在rm mygit.txt 之后输入 git rm mygit.txt 然后commit提交:

    七、Github远程仓库

    首先注册一个github账号,进入setting中的SSH KEY页面,在git bash中输入cd ~/.ssh查看是否有.ssh文件,如果有,输入ls -a会输出(下图),然后使用$ clip  <  ~/.ssh/id_rsa.pub,将文件内容复制到剪切板,如果没有.ssh文件,输入$ ssh-keygen -t rsa -C "youremail@example.com"(邮箱地址),然后一路回车,出现下图2:

    按照前面操作执行:

    在github SSH KEY页面中随便输入一个title,然后右键点击粘贴,提交,然后github远程仓库就配置成功了:

    点击创建一个新的仓库,名字设为learngit,其他默认设置,点击创建:

    根据github提示在本地learngit仓库输入如下命令:

    $ git remote add origin git@github.com:lxh597/learngit.git(lxh597改为你的github账号名,用于关联远程库);origin为远程库名字,git默认;

    然后:git push -u origin master

    第一次push会出现提示:输入yes就ok了:

    然后你的github上就会出现你上传的文件了:

    说明:git push实际上是把当前分支master推送到远程,第一次推送master分支时,加上-u参数,git不但会把本地master分支推送到远程新的master分支,还会讲其关联起来,后面的推送或者拉区就可以简化命令;

    现在只要本地做了提交,就可以通过$ git push origin master 把本地master分支推送到github

    八、远程克隆

    登陆github创建一个新的仓库,取名warehouse,勾选下方自动生成一个readme文件:

    输入$ git clone git@github.com:lxh597/warehouse.git(注意修改账号名),cd进入查看:

    九、分支管理

    当你开发一个新功能而又不能在短时间内完成,这时你又不能提交未完成的文件,因为这样可能会使别人无法正常工作,如果代码全部写完再进行提交,又可能会有丢失进度的风险;

    你可以创建一个属于你自己的分支,别人看不到,想提交就提交,等你把工作做完,再把这个分支合并到原来的分支上,这样既安全又不影响他人工作;

    使用$ git checkout -b dev(创建一个名为dev的分支并切换至dev分支),相当于$ git branch dev,$ git checkout dev;使用$ git branch 查看当前分支:

    在README文件中添加一行代码,然后add commit 提交:

    切换回master分支:git checkout master,然后使用git merge dev将dev合并到当前分支,然后使用git branch -d dev删除dev分支:

    相关文章

      网友评论

          本文标题:git学习总结

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