您的位置:首页 > 编程语言

Git+GitHub,构建自己的开源仓库之Git命令

2016-07-13 14:58 513 查看

把本地仓库关联到GitHub仓库

通过第一篇Git+GitHub,构建自己的开源仓库之初识Git的操作,我们已经有了一个本地仓库git-test了,现在把它发布到我的GitHub仓库里,怎么操作呢?

配置SSH加密信息

由于本地Git仓库和GitHub仓库之间的传输是通过SSH加密的,所以,首先要做的就是配置SSH加密信息。

生成SSH Key:因为安装完git后,SSH也会默认安装上,所以,在Git Bash输入命令ssh,会出现下面的内容:



证明ssh已经安装在电脑里了。现在可以输入生成ssh key的命令了:

ssh-keygen -t rsa

后面执行三个回车(不包括上面这条命令的回车),然后在你的用户目录下会生成.ssh文件夹,是隐藏文件,里面有以下内容(known_hosts文件暂时可以忽略):



添加公钥到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”按钮,创建一个新的仓库:



关联仓库,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 status


这条命令的使用频率是相当的高,有多高呢?



这条命令简直就像是我们在git中的眼睛一样,时刻告诉我们当前的仓库是什么情况,上次离开时的最后保存状态是怎样,接下来有哪些事需要做等等。

注意:如果家里的这台电脑还没有Git相关环境,请参考第一篇文章,准备好Git环境

查看改动内容

git diff


我们用git status查看到本地文件有改动,但是不知道具体有哪些变化,可以用这条命令来查看,比如我改动了本地的b.txt文件,输入git status:

$ git statusOn 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的命令也不少,这里不可能一次说完,关键在于经常使用、经常练习,没事的时候多敲敲命令,领会每个命令的含义。

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  github git ssh