Git+GitHub,构建自己的开源仓库之Git命令
把本地仓库关联到GitHub仓库
通过第一篇Git+GitHub,构建自己的开源仓库之初识Git的操作,我们已经有了一个本地仓库git-test了,现在把它发布到我的GitHub仓库里,怎么操作呢?
-
配置SSH加密信息
由于本地Git仓库和GitHub仓库之间的传输是通过SSH加密的,所以,首先要做的就是配置SSH加密信息。-
生成SSH Key:因为安装完git后,SSH也会默认安装上,所以,在Git Bash输入命令ssh,会出现下面的内容:
ssh信息
证明ssh已经安装在电脑里了。现在可以输入生成ssh key的命令了:
ssh-keygen -t rsa
-
后面执行三个回车(不包括上面这条命令的回车),然后在你的用户目录下会生成.ssh文件夹,是隐藏文件,里面有以下内容(known_hosts文件暂时可以忽略):
生成的SSH公钥和私钥
-
添加公钥到GitHub账户
id_rsa是私钥,id_rsa.pub是公钥(文件类型是Microsoft Publish的那个),用编辑器打开公钥,拷贝里面的内容;然后登陆你的GitHub账户,打开“settings”,点击左侧“SSH and GPG keys”页面,然后,点“New SSH Key”,填上任意Title(也可不填),在Key文本框里粘贴刚才拷贝的公钥:
拷贝公钥点“Add SSH Key”,你就应该看到上面的列表中已经添加的Key。
添加公钥成功
-
配置用户名和邮箱
用户名是你GitHub账户的用户名,邮箱是你GitHub账户注册用的邮箱git config --global user.name "your-github-account-name" git config --global user.email "your-github-email@163.com"
-
关联本地仓库
-
登陆GitHub,然后,在右上角找到“Create a new repo”按钮,创建一个新的仓库:
创建GitHub Repo -
关联仓库,cd到本地仓库根目录,执行:
git remote add origin git@github.com:chengshengyang/git-test.git
-
origin是仓库的名字,这里使用的是约定俗成的名称origin,chengshengyang一定要换成你自己的GitHub账户名字,也就是你配置的用户名。
好了,这样就关联成功,可以试试在本地git-test仓库里新建一个文本文档test.txt,然后push到GitHub上。
Git常用命令操练
在Git Bash输入git命令:
git常用命令一览表
如果忘记了某个命令可以先到这里面来找找看,这里还对git的命令做了一个分类,每个命令后面对应一个简短的说明。
-
状态查询
git status
这条命令的使用频率是相当的高,有多高呢?
这条命令简直就像是我们在git中的眼睛一样,时刻告诉我们当前的仓库是什么情况,上次离开时的最后保存状态是怎样,接下来有哪些事需要做等等。
注意:如果家里的这台电脑还没有Git相关环境,请参考第一篇文章,准备好Git环境
-
查看改动内容
git diff
我们用git status查看到本地文件有改动,但是不知道具体有哪些变化,可以用这条命令来查看,比如我改动了本地的b.txt文件,输入git status:
$ git status
On branch master
Your branch is up-to-date with 'origin/master'.
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git checkout -- <file>..." to discard changes in working directory)modified: b.txt no changes added to commit (use "git add" and/or "git commit -a")
现在知道b.txt的状态是modified,那看看编辑了什么内容:
$ git diff b.txt diff --git a/b.txt b/b.txt index 6608a0d..2323b58 100644 --- a/b.txt +++ b/b.txt @@ -1,4 +1,3 @@ 00000000000000000000000000 111111111111111111111111111 -2222222222222222323333333333 -44444444444444 \\ No newline at end of file +2222222222222222323333333333 \\ No newline at end of file
减号是删除,加号是新增,上面的内容是说最后一行从原来的“444444444444...”变成了现在的“2222222222222222323333333333”,也就是删除了最后一行内容。
-
拉取服务器最新内容
git pull origin master
一般再开始新的工作之前,都要先保证自己的本地仓库与远程仓库保持一致,也就是把自己的代码更新到最新状态,这样做的好处是减少冲突的可能性。git的大多数命令都是可以脱机工作的(push和pull必须联网),因为,你的操作都是对本地仓库的内容进行操作的,可以在不联网的情况下,正常的提交代码,这种便捷性是一些传统的CVCS系统所不具备的,比如Perforce在不连接到服务器的情况下几乎什么都做不了,包括编辑;Subversion和CVS虽然可以编辑内容,但无法提交代码。
-
添加到暂存区
git add对本地代码进行了增删改操作之后,需要提交到远程仓库时,git add命令是第一步,把需要提交的内容添加到暂存区,关于暂存区这个概念是git特有的,其他的传统的版本控制系统并没有这个概念,暂存区的作用是暂存本地将要提交的内容,然后提交时一次性将暂存区的内容全部提交到远程仓库。
问题来了,要添加的内容太多怎么办?
git add -A
那万一这里面又有一个文件a.java是我不小心修改的,或者暂时不想提交,执行git add -A后怎么把a.java移除暂存区呢?
git rm --cached a.java
这样就把文件a.java从暂存区中移除来了,但不会物理删除,也不会被提交到远程仓库了。 -
内容提交
git commit -m "description for commit"把暂存区的内容提交到本地仓库,这个时候,我们的内容在GitHub或者其他的远程仓库中还是没有的,因为commit操作还是在本地进行的,也正因为如此,Git才可以脱机工作。那如果想要提交到GitHub远程仓库怎么办呢?看下面
-
推送到远程仓库
git push origin master这条指令才是真正的把本地内容推送到远程仓库,别人才能更新到你的推送。
以上,基本上是使用Git进行版本控制的一个常用的最简单的流程会用到的命令了,也是使用频率比较高的命令,包括:拉取远程仓库最新内容-编辑本地仓库内容-将编辑的内容添加到暂存区-修改暂存区内容-提交到本地仓库-推送到远程仓库。
当然,我们在实际使用时绝不会这么简单。git的命令也不少,这里不可能一次说完,关键在于经常使用、经常练习,没事的时候多敲敲命令,领会每个命令的含义。
统计下人数