出发点: 在写作的过程中,同一个写作内容,为了防止丢失或者能够重新返回修改,刻意建立一个文件夹保存以往修改的版本,但是问题来了:修改了的历史版本的word文件自己很少去看。等下次再想找的时候,不知道是哪一个!
为此开始使用Git的分布式管理。
入门参考廖雪峰老师的课程收获不小!故将总结。
一、安装软件(已安装的可跳过)
(1) 电脑端本地管理:包括base 和gui操作界面,下载地址:Git - Downloads
(2)服务器:github:GitHub: Let’s build from here · GitHub 注册账号
新手教程Hello World - GitHub Docs,可以快速的入门如何在github上建立仓库、分支管理、以及download到本地、修改以及如何提交、如何合并分支的master主分支上等。
二、本地仓库创建
(1)在gitbash客户端上输入下述指令登录,将冒号内的内容修改为自己的即可!
$ git config --global user.name "Your Name"
$ git config --global user.email "email@example.com"
(2)创建仓库learngit并cd到此目录下:
mkdir 和cd指令
$ mkdir learngit
$ cd learngit
初初始化仓库:
$ git init
此时仓库以建立好,接下来就可以进行操作
容易遇到的问题是:找不到建立仓库的位置 ,以及如何cd到某个盘对应的文件夹下,可参考:cd+路径分为相对地址和绝对地址!
三、开始建立文件、添加到暂存区、提交到本地版本库
(1)建立的文件在learngit的目录下
(2)将文件添加到暂存区
$ git add readme.txt
(3)将文件添加到所创建本地版本库
$ git commit -m "wrote a readme file"
其中双引号内为解释提交内容的说明。
四、查看文件的修改状态
查看仓库的状态
涉及工作区、暂存区和版本库之间的状态
$ git status
查看具体某个文件的修改内容
$ git diff readme.txt
$ cat readme.txt
查看版本修提交历史:目的是为了版本回退
$ git log
查看指令操作情况:目的是为了撤销回退
$ git reflog
五、工作区、暂存区、本地版本的文件修改(版本回退)
(1)工作区修改
直接在文件上操作或者
回退:直接操作即可
$ git checkout -- readme.txt
(2)暂存区修改
add 内容
回退:也就是已经add到暂存区了,此时不想在暂存区有此内容则:
$ git reset HEAD readme.txt
首先通过 git status 查看文件的状态目前进行到哪个步骤了(工作区、暂存区、已经提交)
若是还没有提交则通过上述的命令将暂存区的内容去掉,回到工作区。若还想继续回退则回到步骤(1)即可
(3)本地版本修改
回退:也就是已经执行add和commit操作了
通过下述操作可以实现回退:
上一个版本就是HEAD^,上上一个版本就是HEAD^^,往上100个版本写100个^比较容易数不过来,写成HEAD~100。
$ git reset --hard HEAD^
撤销回退:
$ git reset --hard 1094a
其中的1094a是版本对应的标记,有两种方式找到一种是:当前窗口没有关闭,往回找之前git log的信息; 第二种是使用git reflog查看
六、文件删除
$ rm test.txt
两种状态:
(1)从本地版本库完全删除
$ git rm test.txt
$ git commit -m "remove test.txt"
(2)不想删除了
从版本库还原到工作区:
$ git checkout -- test.txt
七、设置建立服务器(github)和本地仓库的联系
(1)本地客户端 操作
登录用户名之前已经操作:
在本地的客户端上通过用户名和邮箱进行验证
创建仓库已经操作
(2)两者通信的加密方式:SSH协议
首先在github上找到添加SSH,将本地安装的github客户端所生成的SSH文件夹下的文件内的内容拷贝到github 上,进行关联!点击
或者参考:红色石头 Git 简洁教程(1):本地项目如何与 GitHub 远程仓库互连?-红色石头的个人博客
(3)github服务器的仓库建立
(4) 本地版本库和服务器关联
$ git remote add origin git@github.com:michaelliao/learngit.git
此时可能要求再次输入用户名和邮箱密码的情况照常输入即可
(5) 本地推送到github
将本地版本库内容推送到github托管服务器上
第一次推送带参数u
$ git push -u origin master
往后的推送指令:
$ git push origin master
(6) github克隆到本地
$ git clone git@github.com:michaelliao/gitskills.git
遇到的问题:
(1)fatal: remote origin already exists
解决:
$ git remote rm origin
然后再执行之前添加到远程库的操作即可
参考:Git 提示fatal: remote origin already exists 错误解决办法_Ricky_Fung的博客-优快云博客
git 克隆远程的分支到本地目录并进行该分支的修改操作:(以后就可以在此分支上修改,完成一个阶段再push request 到master 进行合并)
1)在一个空的目录下操作
2) git clone 远程仓库地址(一般克隆的是master)
3)cd到刚刚在本地目录下载的文件夹名 cd project
4)查看所有分支
git branch -a #查看所有分支
5)切换到分支
git checkout -b edit_fiber
会看到原来是master的内容,立即切换为分支,
同样通过命令git checkout master 可切换回主分支
这也是参考文【2】中指出的简单办法切换,它切换的基础是在已有master仓库的基础上进行切换的。
参考:【1】为已经存在的本地项目添加git,以及从远程仓库拉取代码并切换远程分支 为已经存在的本地项目添加git,以及从远程仓库拉取代码并切换远程分支 - Sharley - 博客园
【2】Git 如何 clone 非 master 分支的代码Git 如何 clone 非 master 分支的代码
如果想要在多台电脑上对仓库进行管理(可以添加多个ssh):
那么需要添加新的rsa。操作如下:
1、终端中输入:cd ~/.ssh 或cd .ssh
如果没有则提示: No such file or directory
如果有则进入~/.ssh路径下(ls查看当前路径文件,rm * 删除所有文件)2、安装并使用Git Bash生成新的ssh key
执行命令:ssh-keygen -t rsa -C "example@mail.com"
接着又会提示你输入两次密码(该密码是你push文件的时候要输入的密码,而不是github管理者的密码),你也可以不输入密码,直接按回车。那么push的时候就不需要输入密码,直接提交到github上了。3、终端中输入:cd ~/.ssh 通过ls命令找到id_rsa.pub。
4、登录Github账号,进入Settings,点击SSH and GPG keys。点击New SSH key,填写标题(任意),把id_rsa.pub内容粘贴到Key中。
5、测试连接:ssh -T git@github.com ,出现 You’ve successfully authenticated, but GitHub does not provide shell access.说明连接成功。
6、配置账户
$ git config --global user.name “your_username” #设置用户名
$ git config --global user.email “your_registered_github_Email” #设置邮箱地址(建议用注册giuhub的邮箱)参考:【1】创建SSH密钥,部署Github(Windows)+项目部署 创建SSH**,部署Github(Windows)+项目部署 - 程序员大本营
关于github如何进行团队管理操作?
参考官方教程和如下博客:
【1】https://blog.youkuaiyun.com/loadsong/article/category/6260743
【2】github团队合作管理代码 github团队合作管理代码_南宫伊枫的博客-优快云博客_folk github
gitdesktop和配套编辑软件ATOM使用
在ATOM编辑器中可以更改编码格式:首先操作界面是在你所在的文件位置点击右键更改编码格式中文为GBK
或者设置为默认GBK方式是:在editor内找到core,找到FileEncoding 进行默认的修改即可
参考:Atom编辑器中查看当前文件的字符编码格式 https://www.crifan.com/atom_view_current_file_encoding_charset_format/