Git Bash一些操作与SSH关联

本地仓库

git init             //此时处于什么目录什么目录就会成为仓库,之后会在这个目录下生成一个.git文件夹,用于管理仓库

                        //当有多个仓库时,进到哪个目录就算哪个仓库的操作

仓库的删除:

                        1)rm -rf  .git       //删除.git文件      

                        2)rm -rf  xxx      //之后再去删除本地的库文件夹即可

遇到的一个小错误

                       The directory G:\ is registered as a Git root, but no Git repositories were found there.

                       我在G盘根目录下新建了仓库,删除仓库后,由于pycharm的工程文件在G盘下所以报错

                        解决:找到version control(版本控制)设置,把目录G:/ 删掉

git add xxx             //xxx文件一定要在在git仓库目录下, 不然会报错 (例如:在上一级目录下有个文件)                            

                                              

                                 //当文件放到git仓库下后,此时它还没有被仓库暂存区包含,必须add一下才算放到仓库的暂存区中;

                                 //即使只是修改过(modified状态),也要重新 git add 一下

                                 //一般要git add README  文件做说明书

git commit            //将当前暂存区变更进行提交,这样才算是正式进入了仓库

                                // -a可以让所有暂存区的改变都提交上去,而不仅仅是当前暂存区

                             //执行后会有一个vim文件让你编辑你自己都做了什么改变,相当于变更说明书

git clone [url]                        //克隆仓库,我克隆自己的仓库 git clone https://github.com/spotted-deer/python.git

                                              //但是clone和init不太一样,clone会在当前目录的下一层创建仓库

找自己或别人的URL:

git status                //查看仓库最近的改变,状态等

                                 //具体的修改要用 git diff,想要查看两次提交过的(在暂存区的)差异 git diff --cached

.gitignore文件的内容:   遵循正则表达式 

这个文件的默认规范:

  • 所有空行或者以注释符号  开头的行都会被 Git 忽略。
  • 可以使用标准的 glob 模式匹配。
  • 匹配模式最后跟反斜杠(/)说明要忽略的是目录。
  • 要忽略指定模式以外的文件或目录,可以在模式前加上惊叹号(!)取反。

  其他:

           *.[oa]                  #表示忽略以.o或.a结尾的文件 

          !lib.a                    #但 lib.a 除外

           *~                        #表示忽略以~结尾的文件

          doc/**/*.txt           # 忽略 doc/ 目录下所有扩展名为 txt 的文件

git rm                                       //移除文件(既要文件从暂存区移除,又要删除文件)

git mv file_from file_to        //移动文件,或者重命名文件

git log                                     //查看提交历史

git commit --amend             //撤销上一次的提交

git reset HEAD <file>..        //去除暂存区的文件

远程仓库

git remote add [shortname] [url]   //添加远程仓库,指定一个简单的名字(方便使用) ,面对的是账户上的仓库,不是账户本身

                                //添加我的github的远程仓库: git remote add py https://github.com/spotted-deer/python.git

git remote -v                                      //列出所有远程仓库

git fetch xxx                                      //抓取远程有的本地没有的文件的信息,xxx是远程仓库名

git push [remote-name] [branch-name]

      将本地仓库中的数据推送到远程仓库,若有其他人推送了一些更新,那你的推送操作就会被驳回。你必须先把他们的更新抓取到本地,合并到自己的项目中,然后才可以再次推送。        

      //git push py master        将更新添加到远程主机的master分支,如果没有ssh关联,每一次它会让你输入登录账号和密码

git remote show [remote-name]       //查看某个远程仓库信息

git pull <远程主机名> <远程分支名>:<本地分支名>                                                   

         //抓取文件到本地,git pull = git fetch + git merge       //origin是默认主机

         //git pull py master:mybranch       将远程主机py的master分支拉取过来,与本地的mybranch分支合并。

        //git pull py master     表示将远程主机py的master分支拉取过来和本地的当前分支进行合并。   

 更详细信息请看:

https://git-scm.com/book/zh/v1/Git-%E5%9F%BA%E7%A1%80-%E5%8F%96%E5%BE%97%E9%A1%B9%E7%9B%AE%E7%9A%84-Git-%E4%BB%93%E5%BA%93

SSH关联

Git支持多种协议,默认的git://使用ssh协议,也可以使用https等协议,使用https协议缺点:速度慢,每次推送都必须输入口令

SSH使用RSA和SHA256加密,本地ssh产生一对公钥和私钥,公钥给github,私钥本地保存

过程:

1)在本地找到C:\Users\用户名 文件夹下的.ssh文件夹,若不存在则

            在哪都行,点击鼠标右键:Git Bash Here

            输入ssh-keygen -t rsa -C "你的邮箱名"  ,执行,之后存放公钥私钥的目录(跟它前面提示的保持一致就行),输入密码(这里我直接按的回车,表示没有密码)  如图:

                      

       打开.ssh文件夹,id_rsa文件是私钥,id_rsa.pub是公钥(给github)            

2)登录github找到Settings下面的SSH and GPG keys 

     

3)点击new SSH key后:

               

猜你喜欢

转载自blog.csdn.net/changer_WE/article/details/85467796