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

把本地仓库关联到GitHub仓库

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

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

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


      ssh信息
      ssh信息

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

      ssh-keygen -t rsa
      

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


生成的SSH公钥和私钥
生成的SSH公钥和私钥
  1. 添加公钥到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"
    
  • 关联本地仓库

    1. 登陆GitHub,然后,在右上角找到“Create a new repo”按钮,创建一个新的仓库:


      创建GitHub Repo
      创建GitHub Repo
    2. 关联仓库,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的命令做了一个分类,每个命令后面对应一个简短的说明。

  • 状态查询

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


统计下人数
统计下人数
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,456评论 5 477
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,370评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,337评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,583评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,596评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,572评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,936评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,595评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,850评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,601评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,685评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,371评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,951评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,934评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,167评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 43,636评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,411评论 2 342

推荐阅读更多精彩内容

  • 1. 安装 Github 查看是否安装git: $ git config --global user.name "...
    Albert_Sun阅读 13,626评论 9 163
  • 1.git的安装 1.1 在Windows上安装Git msysgit是Windows版的Git,从https:/...
    落魂灬阅读 12,647评论 4 54
  • 今日难得大胆一次,都工说今晚要留两个人加班,旭姐是其中一个,本来说让我加班,但是我说好的今晚陪老大去洗澡,然后去实...
    安妮不是铝汉子阅读 253评论 0 0
  • 以前总觉得自己有很多灵光乍现般的想法,但没有及时记录下来,错过了很多灵感,觉得十分可惜。坚信只要把这些灵感都写出来...
    Mr__Pan阅读 704评论 1 2
  • 时间犹如洪水猛兽,冲走一切,却不留痕迹 以至于我忘记了去年的今天我们还在一起 度过了七月上的忙碌、七月下的稳定,向...
    好小姐阅读 485评论 0 1