首页 > 代码库 > Git 命令总结 及 GItHub 项目推送

Git 命令总结 及 GItHub 项目推送

 

 

 

 

 

技术分享

 

 

 

#今天码了一个小时左右总结了一下git的命令还有一些注意点以及如何推送自己的github仓库上. 

ps: 自己总结的难免出现理解或时语法上的错误[仅供参考]

技术分享

 

Git命令

 

  1.  #添加到暂存区

    技术分享

  2.  #将所有内容加到暂存区

    技术分享

  3. $ git status  #查看工作区

    技术分享

  4. $ git commit -m "注释"  #从暂存区存入版本区,注释内容随意填

    技术分享

  5. $ git commit -a -m "注释" #从工作区存入暂存区再存入版本区

    技术分享

  6. $ git remote add origin git@xxxxx(ssh)

    #(origin 是远程库的名字,也可以改成别的)

    #注: 此处的origin是将你的SSH/HTTPS赋给origin,方便下面使用

    ↓以我的github某仓库为例:

    技术分享

  7. $ git push -u origin master

    #推送到GitHub, 加-u参数 ,git不但会把本地的master分支内容推送到远程新的master分支,还会把本地master分支和远程master分支关联起来

    #注:此处的origin就是上边第六条的origin,也可以直接写成@git:xxxxxx[自己的SSH/HTTPS, 在创建一个库时会生成] 

    技术分享

  8. $ git clone [git@github.com:michaelliao/gitskills.git]#克隆一个github库到本地

    #注: [] 内的为你要克隆的github库  同第六条

    技术分享

  9. $ git checkout -b -dev

    #创建dev分支,然后切换到dev分支上 (-b 表示创建并切换)

    相当于两步: $ git branch dev

               $ git checkout dev

     

  10. $ git branch

    #查看当前分支 会列出所有分支  并用*标出当前分支

     

  11. $ git merge [dev]  #合并指定分支到当前分支

     

  12. $ git branch -d dev  #删除分支 -d删除

     

  13. $ git diff #工作区与暂存区的差异对比

     

  14. $ git diff --cached(--staged) #暂存区与版本区区别

     

  15. $ git diff master #工作区与版本库的差异对比

     

  16. $ git commit --amend #撤销上一次的提交命令,重新提交新的代码

    技术分享

     

删除命令:

 

  1. $ rm <file.name> 删除文件

     

  2. $ git rm <file.name>

    #把暂存区/工作区的文件删除

    #注:git commit -m之后才是把版本库中的文件删除

     

    #注:关于删除的几点:

    $ git add demo.txt

    $ git commit -m"create a simple file"

    #假如你创建并提交之后想删除这个没用的文件  ↓

    $ rm demo.txt

    #这个时候git知道删除了文件,工作区和版本库就不一样了,(版本库中未删除,可以用git status查看)

    #此时有两种选择 ↓

    1: 从版本库中删除该文件 git rm demo.txt

然后 git commit -m"remove file" ,就删了

        2: 删错了,想弄回来, 直接git checkout --demo.txt (checkout 其实是用版本库里的版本替换工作区里的版本)

技术分享

 

版本回退:

 

$git reflog #查看所有版本(操作记录)

 

$git reset HEAD<file.name> #从暂存区撤销回工作区

 

$git checkout -- <file.name> #从工作区撤销上一次提交的版本

 

技术分享

 

关于SSH警告

 

当你第一次使用Git的clone或者push命令连接GitHub时,会得到一个警告:

The authenticity of host ‘github.com (xx.xx.xx.xx)‘ can‘t be established.

RSA key fingerprint is xx.xx.xx.xx.xx.

Are you sure you want to continue connecting (yes/no)?

 

#这是因为Git使用SSH连接,而SSH连接在第一次验证GitHub服务器的Key时,需要你确认GitHub的Key的指纹信息是否真的来自GitHub的服务器,输入yes回车即可。

 

Git会输出一个警告,告诉你已经把GitHub的Key添加到本机的一个信任列表里了:

 

Warning: Permanently added ‘github.com‘ (RSA) to the list of known hosts.

这个警告只会出现一次,后面的操作就不会有任何警告了。

 

#by the way

 

SSH 在主目录下有一个 .ssh目录 里面有两个文件 id_rsa id_rsa.pub  pub里的存放的是公钥.

如果另一个github账户想要往你的github仓库里推送,就需要添加此公钥, 以确保可以成功推送.

类似于一个信任列表或者协议 ,不然别人只能关联你的仓库,但无法推送进去

 

技术分享

 

最后总结一下使用git的大体流程

 

★工作区 ---> 暂存区 ----> 版本库 ====> github仓库

 

?  在本地建一个git仓库或者在github上clone一个仓库

#本地创建: $mkdir  xxx (创建一个目录) $cd xxxx (切换至此目录) $ git init (将此目录创建为版本库) 创建好的仓库会在当期目录下生成一个 .git的目录 此目录用来跟踪和管理你的仓库

 

?  仓库里未操作前为[工作区] ,可以进行正常的代码修改及其他操作

在自己创建的git仓库就是你的工作区. 而.git目录下存在暂存区(stage). git为我们

创建一个默认的分支master 以及指向master的一个指针HEAD

在工作区里 git checkout --index.html 可以丢弃工作区的修改 (-- 很重要. 不然就变成了切换分支)

此处有两种情况: 1. 还没commit 此时倒退回和版本库一模一样的转台

2.已经commit 此时倒退回git add时的状态

?  将工作区中的文件添加到暂存区 git add ./ 文件名 

git add . 表示添加所有的文件 , 也可以用文件名.表示将某一个文件添加到暂存区

在commit 在此处使用 git reset HEAD index.html可以将暂存区里的文件回退到工作区最新的状态.(即保留工作区的修改,取消暂存区的修改)

?  将暂存区中的文件添加到版本区  

.git目录下存在暂存区通过 git commit -m"注释". 将文件提交到版本区(合并到分支)

注:每次修改,如果不add到暂存区,那就不会加入到commit中

?  将版本区中的文件 推送至自己的github仓库

git push https / ssh地址  (自己去试 . 参考第6 和 第8条)

#如果是克隆来的仓库, 直接git push origin master 即可 origin 是默认的仓库名

 

 

★ 也可以用各种软件插件等等进行管理和提交, 但是无法体现git的特性. 而且对于一个程序员来说着实没有牌面,  很low ,我是拒绝的   : )   

 

继续努力吧!  

?后续的到做项目时再整理整理吧 ?  END

 

 

技术分享

 

Git 命令总结 及 GItHub 项目推送