1. 首先简单介绍vim
vim是Unix/Linux系统最常用的编辑器之一
我们需要创建md文件,所以需要简单知道这个文件
创建文件的语句
touch README.md进入文件
vim README.md对文件进行编辑
点击i 可以进入编辑状态(或者common v)保存编辑文件
:x进行保存
“:x”和”:wq”的真正区别,如下:
:wq 强制性写入文件并退出。即使文件没有被修改也强制写入,并更新文件的修改时间。
:x 写入文件并退出。仅当文件被修改时才写入,并更新文件修改时间,否则不会更新文件修改时间。退出编辑状态
esc
2.关于ssh
终端与GitHub之间使用ssh通信协议进行数据传输,也就是想要将数据传输到github的时候,需要对方信任的电脑,这就是为什么需要使用ssh
关于如何配置ssh,GitHub官方帮助里面流程写的很清楚。(可以在Google浏览器 搜索github ssh mac 找到GitHub方法帮助文档)
1.检查本机的ssh是否存在
2.以及如何创建新的ssh,
3.如何添加ssh到GitHub账号上面,上面有个对服务器部署的可以忽略,因为我没有部署也能通过本机对账号推送
3.创建本地项目文件位置
(以下操作均在终端进行)
1. cd xxx
先创建本地一个项目文件,然后通过cd进入项目文件夹
2. git status
进行查看目前状态, 如果提示not a git repository 意思就是没有git的存储库,我们需要对这个文件进行git初始化(git init),把当前文件夹作为我们需要的git存储库。
当我们进行了初始化后,然后会提示我们现在已经初始化了一个空的存储库,然后我们需要通过git add 。。把需要的文件添加到git可以识别的状态
3. git init
对这个文件进行git初始化
4. git add READE.md
添加我们已经进行创建并编辑过的READE文件进去
5. git status (查看状态)
6. git commit -m “first commit message”
第一次提交需要添加邮箱账号与用户名
git config --global user.name "John Doe"
git config --global user.email johndoe@example.com
7. git status (查看状态)
On branch master
nothing to commit, working tree clean
如果状态变为这个样子就可以了
8. 此时状态我们这时候对项目进行再次更改增加一个readTwo.md文件(为了测试更改文件,与创建文件显示的提示状态不同)
touch.....
vim....
git add xxx(更新文件)
git status
会出现如下的状态
Changes not staged for commit:的状态,(注意哦::由于这次只是更改原文件中的事情从而不是Untracked files:)我们可以通过git add xxx然后可以更新被提交的东西。然后git status (查看状态)变为开始准备提交的状态
如果我们在这之前又新建了一个yy文件,那么我们还是会看到关于yy文件的状态会是Untracked files的状态
9. git add -A
可以通过把所有的文件都添加上去
10. git commit -m “备注信息”
提交,并留言
11. git log
获取版本记录状态
12. git checkout xxxxx(根据log获取记录中字符串的前六位)
这个时候进入对应的文件夹,是第一次时候的文件状态
13. git checkout -b mybranch
创建并切换分支,分之名字叫:mybranch
另外git branch只是创建分支
14. git checkout master
检查完主分支后,在继续进入master主支
15. ls
查看一下项目
4.如何上传项目到GitHub,并更新项目
首先创建GitHub库在在本地创建项目
首先在github 网站上面创建一个项目
在本地电脑创建一个本地项目,当然xcode创建项目的时候需要同时创建本地git的,然后进入项目文件夹
查看一下远程仓库(git remote -v)
如果没显示远程仓库,在github网站找到项目的ssh地址(git remote add origin git@github.com:ComeAgain22/destroytheworld.git)加载完远程仓库后,我们需要找到(git remote -v)会发现找到了连个一个为fetch,一个push添加所有变更(git add -A)
查看文件的状态(git status)
拉取源文件 git pull origin master,(如果GitHub没有添加次电脑的ssh信任,先添加这个key的信任)另外可能会提示下面状态
Are you sure you want to continue connecting (yes/no)? yes
然后提示失败
fatal: refusing to merge unrelated histories
如果拒绝合并,则在后面添加 –allow-unrelated-histories
既:git pull origin master –allow-unrelated-histories此时进入vim进行编辑保存:x退出就可以了
进行远程推送上传即可 git push origin master
另外抓取可以是 git fetch origin master
或者合并可以是 git merge origin master
接下来是我们在本地首先创建项目,然后在GitHub上面进行库的创建
首先在本地创建好 项目
在GitHub上面创建相同的项目名称
在终端 进入项目文件,然后创建README.md文件
git status 查看文件的状态
(5-9步骤其实在GitHub提示里面有的,按照GitHub项目提示一步步进行操作)
git add -A 进行修改文件添加
git status 查看修改文件添加是否成功
git commit -m “xxxxx”进行提交项目文件备注
git remote add origin git@github.com:ComeAgain22/testSave.git 进行项目远程仓库链接创建
git push origin master 对项目进行推送
5. 关于取消更改
1.未push的状态撤回
首先需要知道工作区(working diretory)和暂存区(Stage)这两个概念。工作区的该概念不仅包含你实际操作、更改的文件还应当包括当前修改但未add存入暂存区的文件变化信息,暂存区的作用则是临时存储文件的变化信息,在git add file操作之后,暂存区中将记录file文件上的修改信息。暂存区的存在更细化了时间节点,要知道commit的往往是有重大改变的版本或者是在一次修改工作整体完成之后才使用commit。而在这之间需要保存的修改,自然需要一个缓存区暂时存放。
“撤销修改”
1.git checkout
2.git reset
其中
git checkout -- file;撤销对工作区修改,这个命令是以最新的存储时间节点(add和commit)为参照,覆盖工作区对应文件file;这个命令改变的是工作区
git reset HEAD -- file;清空add命令向暂存区提交的关于file文件的修改(Ustage)
总结一下:
有过add提交的使用git reset 文件
* 一直未提交的就是用 git checkout 文件 *
也就是如果我们文件已经提交到本地的缓存区,也就是通过add 这一步了,那么我们撤销的时候需要reset形式撤销,reset撤销只是撤出暂存区,并不是直接取消了而是在工作区还是有的,这个时候我们可以继续进行checkout撤销,这样就彻底取消掉修改的文件了。
2.已经push后的回撤
通过git log 获取提交的版本号
git revert 版本号xxxx
然后:x保存退出就可以了撤回到指定的版本了