一.ubuntu18.04中安裝使用github
二.fedora中设置使用git
三.windows中安装使用git
一.ubuntu18.04中安裝使用github
1.创建账户
2.ubuntu安装github
$sudo apt-get install git
$sudo apt-get install -y git-daemon-run git-doc git-el git-email git-gui gitk gitweb git-cvs git-mediawiki git-svn
3.设置SSH Key
GitHub上连接已有仓库时的认证,是通过使用了SSH的公开密钥认证方式进行的。
创建公开密钥认证所需的SSH Key,并将其添加至Github。运行下面的命令创建SSH Key:
$ssh-keygen -t rsa -C "刚刚注册时使用的邮箱"
$ls -a
id_rsa id_rsa.pub(id_rsa是私钥文件 id_rsa.pub是公钥文件)
4.添加公开密钥
在Github上添加公开密钥,今后就可以用私有密钥进行认证了。
点击github web界面右上角的settings,选择SSH and GPG keys,点击New SSH key,title任意设置,在终端中运行$cat id_rsa.pub
显示刚刚创建的公钥内容,选择该内容,使用Shift+Ctrl +C
复制邮箱前的所有内容(包括ssh-rsa前缀部分),将复制的内容添加到Key的内容框中,点击Add SSH Key。
在终端中运行$ ssh -T [email protected]
Hi xxx You’ve successfully authenticated, but GitHub does not provide shell access.
若显示以上内容则代表认证成功。
5.使用GitHub
1.版本管理:即管理更新的历史记录。可以记录一款软件添加更改源代码的流程,利于回滚恢复。
版本管理系统:
- 集中型:Subversion
将仓库集中存放在server中,故只有一个仓库。一旦开发者所处的环境无法连接server就无法获取最新的源码,开发将无法进行。 - 分散型:GitHub
GitHub将仓库Fork给了每一个用户。
Fork即为将Gitub的某个仓库复制到自己的电脑中,注意Git将使用一个不存在的目录进行复制。
Fork出的仓库与原仓库是两个不同的仓库,开发者可随意编辑。
2.初始设置:设置用户名和邮箱,提高命令可读性
$git config --global user.name "用户名"
$git config --global user.email "邮箱"
$git config --global color.ui auto
$cat ~/.gitconfig
3.创建仓库
Git web界面中点击右上角工具栏的New Repository
-
Repository name
仓库名称 -
Description
-
Public,Private
公开仓库的内容全部公开,私有仓库收费 -
Initialize this repository with a README
在此项打钩,随后Gitub会自动初始化仓库并设置README文件,让用户可以立即clone这个仓库。若向Github中添加已有的仓库,建议不要勾选,直接手动push。 -
Add .gitignore
可在初始化时自动生成.gitignore文件,把不需要在Git仓库中进行版本管理的文件记录在该文件中,省去了每次根据框架进行设置的麻烦。下拉菜单中包含了主要的语言及框架,选择今后将要使用的即可。 -
Add a license
选择要添加的许可协议文件。
如果这个仓库中包含的代码已经确定了许可协议,在这里选择。
随后将自动生成包含许可协议内容的LICESE文件,用来表明该仓库的许可协议。
4.连接仓库
下面的URL即为刚刚创建的仓库的页面
https://github.com/用户名/HelloWorld
- README.md
表明仓库所包含的软件的概要,使用流程,许可协议等。
点击右上角的图表编辑。
可使用Markdown语法描述,可添加标记。
5.编写代码
- clone已有仓库
git clone [email protected]:<UserName>/<RepoName>
-
编写代码
-
提交
将文件提交至仓库,该文件将进入版本管理系统的控制之下。git add:将文件加入暂存区 git commit:将暂存区中的文件提交之至github git log:查看提交日志 git push:更新github仓库
代码将在github上公开,可使用http://githhub.com/用户名/HelloWorld查看
可在百度中提交网址,这样就可以被他人搜索到。
6.github常用操作
- 基本操作
git init
:初始化仓库。要使用Git进行版本管理,必须先初始化仓库。建立一个目录并初始化仓库。
可见初始化的目的是为了生成.git这个目录,可ls这目录看看里面都生成了什么。这个目录里存储着管理当前目录内容所需的仓库数据。
将.git目录的内容称为“附属于该仓库的工作树”,文本的编辑工作在工作树中进行,然后记录到仓库中,以此管理文件的历史快照。如果想将文件恢复到原先的状态,可以从仓库中调取之前的快照,在工作树中打开。
git status
:查看仓库的状态
提交指:记录工作树中所有文件的当前状态。尚无提交是指我们创建的这个仓库中还没有记录任何文件的任何状态。下面创建README.md文件作为管理对象,为第一次提交做前期准备。
git add
:向暂存区中添加文件。根据提示的内容显示:如果只是使用了git的工作树创建了文件,那末该文件并不会被记录到git的版本管理对象中,因此会显示在未跟踪的文件里,接下来根据提示使用git add建立跟踪。
git commit
:将当前暂存区中的文件实际保存到仓库的历史记录中。通过这些历史记录,就可以在工作树中实现复原文件。
-m:指定一个简短的提交信息描述。若不加-m直接使用git commit则执行后编辑器就会启动,在编辑器中记录提交信息的格式如下:第一行:用一行文字简述提交的更改内容;第二行:空行;第三行以后:记录更改的原因和详细内容。若在编辑器启动后想中止提交,将提交信息留空并直接关闭编辑器,随后提交就会终止。
git log:查看提交日志
git log --pretty=short:只显示第一行简述信息
git log README.md:只显示指定目录,文件的日志
git log -p:查看提交所带来的改动。
git log -p <fileName/directoryName>:查看特定文件或目录的改动信息
git diff
:查看更改前后的差别。git diff可以查看工作树,暂存区,最新提交之间的差别。"+“表示添加,”-"表示删除。
git diff HEAD
:查看本次提交与上次提交的差别,等确认完毕后在进行提交。HEAD是指向当前分支中最新一次提交的指针。
2. 分支操作
在进行多个并行作业时用分支操作。不同分支中可以同时进行完全不同的作业,等该分支的作业完成后在与master分支合并。可以让多人并行开发。
git branch:显示分支列表。"*"表示当前所处的分支
git branch <branchName>:创建一个新分支
git checkout <branchName>:切换到特定分支
git checkout -b <branchNAme>:创建并切换到新创建的分支
git checkout -:切换回上一个分支
创建的各个分支可在.git目录下的refs下的heads目录中查看。
注意:在分支A中修改了文件,在分支A中可以查看到文件的变更。但是切换回master分支后发现master分支中的文件仍然保持原来的状态。即分支A的更改不会影响到master分支。故只要创建多个分支,就可以在不互相影响的情况下同时进行多个功能的开发。
git merge --no-ff <branchNAme>
:合并分支。需处在主干分支master下进行分支合并操作。为了在历史记录中明确记录下本次分支合并,我们需要创建合并提交,因此,在合并时加上–no-ff参数。
git log --graph:
以图表形式查看分支
注意:在此次合并之后我们再次查看master分支中文件的内容,发现合并之后master分支中的内容已经更新。
3. 更改提交操作
git reset --hard <destinationTimeHash>
:要让仓库的HEAD,暂存区,当前工作树回溯到制定状态,需要使用git reset --hard命令并提供回溯时间点的hash值,就可以完全恢复至该时间点的状态。
现在回溯到分支A创建之前的状态:由于所以有的文件都回溯到了指定的哈希时间点上,README.md的文件内容也恢复到了当时的状态。
git reflog
:git log命令只能查看以当前状态为终点的历史记录,而git reflog命令可以查看当前仓库的操作日志。
git commit --amend
:修改提交信息
git rebase -i HEAD-2
:压缩历史,选定当前分支中包含HEAD(最新提交,即指向当前提交的一个指针)在内的两个最新历史记录作为对象并在编辑器中打开。
- 推送至远程仓库
Git为分散型的版本管理系统,前面接触的都是针对单一本地仓库的操作。下面将本地仓库推送至远程网络仓库以供他人访问。同样现在github web界面新建一个仓库,为了防止与其它仓库混淆,新建的仓库名与本地仓库名(目录名)保持一致,注意这次创建时不要勾选Initialize this repository with a README选项。因为一旦勾选该选项,github web端的仓库就会自动生成README文件,从而创建之初便于本地仓库失去了整合性,虽然可以强制覆盖,但最好不要勾选,从而使用本地仓库的README文件。点击Create repository创建仓库。
git remote add
:添加远程仓库。
在github上创建的仓路径为"[email protected]:用户名/git-tutu.git".在终端中使用git remote add 命令将它设为本地仓库的远程仓库。
git push
:推送至远程仓库。
可以推送至master分支:使用git push命令之后,当前分支的内容就会被推送给远程仓库的master分支。-u参数可以在推送的同时,将origin仓库的master分支设置为本地仓库当前分支的upsream。添加了这个参数,将来运行git pull命令从远程仓库获取内容时,本地仓库的这个分支就可以直接从origin的master分支获取内容,省去了另外添加参数的麻烦。
推送至master分支以外的分支:除master分支之外,远程仓库也可以创建其它分支。
- 从远程仓库获取
首先需要切换到其它目录,将github上的仓库clone到本地。
git clone [email protected]:用户名/仓库名
git branch -a
:查看当前分支的相关信息,添加-a参数可以同时显示本地仓库和远程仓库的分支信息
git pull <仓库名> <分支名>
:获取最新的远程仓库分支
二.fedora中设置使用git
1.在fedora中查找是否安装了git
yum list git
可见fedora中已经预装了git,故不需要我们安装。
2.在本地设置使用Git
git config --global user.name "USERNAME"
git config --global user.email "EMAILADRRESS"
git config --global color.ui auto
上述命令会生成~/.gitconfig文件,可显示该文件的内容进行查看,后续也可以手动修改该文件的内容。
3.在GitHub中设置SSH key
登陆你原有的github账号,在GitHub中设置一个新的SSH key,使你在fedora中也可以访问你原有的github账号。
生成SSH Key
在terminal中输入如下命令创建SSH Key:
ssh-keygen -t rsa -C "EMAILADDRESSS"
其余输入直接按回车即可
最后生成的id_rsa文件是私有密钥文件,id_rsa.pub是共有密钥文件。
添加共有密钥至GitHub
在GitHub中添加共有密钥,今后我们在fedora中访问GitHub就可以使用本地的刚刚生成的私有密钥进行认证了。
点击github web界面右上角的settings,选择SSH and GPG keys,点击New SSH key,title任意设置,显示刚刚生成的id_rsa.pub
文件,复制该文件中邮箱前的所有内容(包括ssh-rsa前缀部分),将复制的内容添加到Key的内容框中,点击Add SSH Key。
在git bash中运行如下命令进行验证
$ ssh -T [email protected]
若显示以上内容则代表认证成功。
三.windows中安装使用git
1.在windows中安装Git
Git for Windows https://gitforwindows.org/
点击上述网址下载windows版本的git,linux中都预装了git,而在windows中需要我们手动下载并安装。
一切均使用默认设置即可,无需特殊的修改即可完成Git的安装,当然你可以修改一下安装位置,而不是安装到C盘。
2.在本地设置使用Git
在Linux中直接利用terminal即可以使用git的相关命令,而在windows中我们要借助Git Bash应用程序。他是你刚刚安装完git的附加应用程序。
双击Git Bash图标,打开Git Bash,你可以在windows中利用Git Bash进行Git的各种命令的操作。
初始设置
设置姓名和邮箱地址
git config --global user.name "USERNAME"
git config --global user.email "EMAILADDRESS"
输入该命令后会在~/.gitconfig(在c盘用户目录下即可看见该文件)中以如下的形式输出设置文件。
[user]
name = "USERNAME"
email = "EMAILADDRESS"
你也可以直接手动修改该文件,与在git bash中使用相关命令进行修改是等价的。
需要注意的是:这里设置的姓名和邮箱地址会用在git的提交日志中,由于在GitHub上公开仓库是,这里设置的姓名和邮箱地址也会随着提交日至一同公开,故不便于公开的隐私信息请不要在此处设置
提高命名输出的可读性
将color.ui设置为auto可以让命令的输出具有更高的可读性.
git config --global color.ui auto
上述设置将会在~/.gitconfig中增加
[color]
ui = auto
3.在GitHub中设置SSH key
登陆你原有的github账号,在GitHub中设置一个新的SSH key,使你在windows中也可以访问你原有的github账号。
生成SSH Key
在git bash中输入如下命令创建SSH Key:
ssh-keygen -t rsa -C "EMAILADDRESSS"
其余输入直接按回车即可
最后生成的id_rsa文件是私有密钥文件,id_rsa.pub是共有密钥文件。
添加共有密钥至GitHub
在GitHub中添加共有密钥,今后我们在windowds中访问GitHub就可以使用本地的刚刚生成的私有密钥进行认证了。
点击github web界面右上角的settings,选择SSH and GPG keys,点击New SSH key,title任意设置,在windows的c盘的用户目录下找到隐藏文件.ssh
,点击进入该目录,找到该目录下的id_rsa.pub
文件,复制该文件中邮箱前的所有内容(包括ssh-rsa前缀部分),将复制的内容添加到Key的内容框中,点击Add SSH Key。
在git bash中运行如下命令进行验证
$ ssh -T [email protected]
Hi xxx You’ve successfully authenticated, but GitHub does not provide shell access.
若显示以上内容则代表认证成功。
最后添加完成后即如下:
至此在三个系统中均可以使用git了。