zoukankan      html  css  js  c++  java
  • git使用笔记

    1.下载Git软件:

    http://msysgit.github.io/

    2.安装git软件(很简单)。

    安装成功后,在[开始]->[程序]->[git],下就会看见Git Bash和Git GUI,打开Git Bash,进入bash界面。

    或者点击鼠标右键,如下图:

    3.注册邮箱

    在git bash界面输入如下内容即可完成邮箱的注册:
    $ git config --global user.name "user.name"
    (说明:双引号中需要你的用户名,这个可以随便输入,比如"Mrzou")
    $ git config --global user.email "yourmail@youremail.com"
    (说明: 双引号中需要输入你的有效邮箱,比如“3820xxxxx@qq.com”)

    4.查看是否存在ssh keys

    $ cd ~/.ssh
    若出现“No such file or directory”,则表示需要创建一个ssh keys。

    5.创建新的ssh keys
     $ssh-keygen -t rsa -C "3820xxxxx@qq.com"


     $指定目录: C:MykeysForGit(说明:若在此处不输入路径,而直接按回车,则ssh keys生成后存放的路径为C:User.ssh)
     $输入密码: 123456
     $确认密码: 123456  

     (或者直接三个回车,省事)

      如此即可在C:MykeysForGit文件夹中生成ssh keys。包括两个文件rd_rsa和id_rsa.pub

    6.到目前为止即完成了git软件的安装和钥匙的生成。

    添加公钥到你的远程仓库(github)

     1、查看你生成的公钥:

    cat ~/.ssh/id_rsa.pub
    ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC0X6L1zLL4VHuvGb8aJH3ippTozmReSUzgntvk434aJ/v7kOdJ/MTyBlWXFCR+HAo3FXRitBqxiX1nKhXpHAZsMciLq8vR3c8E7CjZN733f5AL8uEYJA+YZevY5UCvEg+umT7PHghKYaJwaCxV7sjYP7Z6V79OMCEAGDNXC26IBMdMgOluQjp6o6j2KAdtRBdCDS/QIU5THQDxJ9lBXjk1fiq9tITo/aXBvjZeD+gH/Apkh/0GbO8VQLiYYmNfqqAHHeXdltORn8N7C9lOa/UW3KM7QdXo6J0GFlBVQeTE/IGqhMS5PMln3 admin@admin-PC

    2、登陆你的github帐户。点击你的头像,然后 Settings -> 左栏点击 SSH and GPG keys -> 点击 New SSH key

    新建SSH keys

    3、然后你复制上面的公钥内容,粘贴进“Key”文本域内。 title域,自己随便起个名字。

    4、点击 Add SSH key。

    完成以后,验证下这个key是不是正常工作:

    ssh -T git@github.com
    
    Attempts to ssh to github

    如果,看到:

    $ ssh -T git@github.com
    AThe authenticity of host 'github.com (192.30.255.112)' can't be established.
    RSA key fingerprint is SHA256:nThbg6kXUpJWGl7E1IGOCspRomTxdCARLviKw6E5SY8.
    Are you sure you want to continue connecting (yes/no)?
    

     直接输入 yes回车,然后会看到下面这句

    Warning: Permanently added 'github.com,192.30.255.112' (RSA) to the list of known hosts.
    Hi xxxxxxx(github用户名)! You've successfully authenticated, but GitHub does not provide shell access.

    恭喜你,你的设置已经成功了。

    6、到github上新建一个自己的项目

    https://github.com/ 点击进入后登录自己的帐号,然后在网页的右上角点击 + 加号,

    再点击new repository ---> 填写项目名称(Repository name) --->填写项目描述(Description) --->选择协议Licenses(选MIT协议)

    完了,再点击下方的 Create repository 按钮,ok项目新建完毕,Licenses(协议)如果未选,默认新建完会自动生成一个git push的教程,如下

    echo "# gallery-by-react.github.io" >> README.md  //在本地新建一个README.md文件件
    git init                  //初始化git
    git add README.md            //新增-- 刚新建增加的README.md文件到本地库 // git add . 或者 git add -A 把当前目录下所有文件加入到本地库
    git commit -m "first commit"     //提交本地库到git中
    git remote add origin git@github.com:zoujian3820/gallery-by-react.github.io.git
                        //设置使用SSH协议的项目推送地址,也可设置为https的协议,但会要求每次输帐户和密码 git push -u origin master      //向github提交推送文件

    平时自己建项目也是这个流程,按这个套路上传即可,

    git push前请先走一遍下面第 8 条的内容

    7.修改git的remote url

     使用命令 git remote -v 查看你当前的 remote url

    git remote -v
    origin https://github.com/xxxxxx(github用户名)/gallery-by-react.git (fetch)
    origin https://github.com/xxxxxx(github用户名)/gallery-by-react.git (push)

    如果是以上的结果那么说明此项目是使用https协议进行访问的(如果地址是git开头则表示是git协议)

    你可以登陆你的github,你在上面可以看到你的ssh协议相应的url,类似:

    复制此ssh链接,然后使用命令 git remote  来调整你的url。

    //修改远程仓库地址
    git remote set-url origin git@github.com:zouxxxx3820/gallery-by-react.git


    //删除远程仓库地址
    git remote rm origin


    //增加远程仓库地址
    git remote add origin git@github.com:zouxxxx3820/gallery-by-react.git

    然后你可以再用命令 git remote -v 查看一下,url是否已经变成了ssh地址。

    然后你就可以愉快的使用git fetch, git pull , git push,再也不用输入烦人的密码了

    8、git push提交到github前,必须要检查和设置的地方(小细节往往会让我们痛苦到欲哭无泪)

    把本地库的内容推送到远程库GitHub时,记住一定,要在GitHub的你账号网页上右上角,个人的登录退出的位置,

    找到setting:

     setting->emails->Keep my email address private,把这一项去掉勾选

    We'll remove your public profile email and use 28420935+zoujian3820@users.noreply.github.com when performing web-based Git operations and sending email on your behalf. If you want command line Git operations to use your private email you must set your email in Git.

    否则你会一直提交不上去,由于上面限制了使用规定的邮箱,所以会一直提交不上,报错如下

    $ git push -u origin master
    Counting objects: 3, done.
    Writing objects: 100% (3/3), 237 bytes | 0 bytes/s, done.
    Total 3 (delta 0), reused 0 (delta 0)
    remote: error: GH007: Your push would publish a private email address.
    remote: You can make your email public or disable this protection by visiting:
    remote: http://github.com/settings/emails
    To git@github.com:zoujian3820/gallery-by-react.github.io.git
    ! [remote rejected] master -> master (push declined due to email privacy restrictions)
    error: failed to push some refs to 'git@github.com:zoujian3820/gallery-by-react.github.io.git'
    

    9、git开发中常用操作

    远程仓库相关命令
    检出仓库:$ git clone git://github.com/jquery/jquery.git
    查看远程仓库:$ git remote -v
    添加远程仓库:$ git remote add [name] [url]
    删除远程仓库:$ git remote rm [name]
    修改远程仓库:$ git remote set-url --push[name][newUrl]
    拉取远程仓库:$ git pull [remoteName] [localBranchName]
    推送远程仓库:$ git push [remoteName] [localBranchName]
    
    删除文件:git rm 文件名[删除本地git仓库文件, 提交后远程服务器上的文件才会消失]
    查看状态:git status
    添加记录:git add 文件名 或 git add . [将文件提交到远程git服务器上]
    添加描述:git commit -m "描述或备注类似svn提交时的注释"
    同步数据:git pull  [获取git远程服务器上的数据也可以具体到某一分支如: git pull origin 分支名]
    提交数据:git push origin 分支名
    
    
    
    
    
    分支操作
    
    查看本地分支:$ git branch
    查看远程分支:$ git branch -r   
    查看所有分支:git branch -a     //remotes开头的代表是远程分支
    
    
    创建本地分支:git branch 分支名 //注意新分支创建后不会自动切换为当前分支
    切换分支:git checkout 分支名
    创建+切换分支:git checkout -b 分支名
    
    
    合并某分支到当前分支:git merge 分支名name  //将名称为name的分支与当前分支合并
    
      [比如,如果要将开发中的分支(deve),合并到稳定分支(master),
         首先切换的master分支:git checkout master。
         然后执行合并操作:git merge deve。
         如果有冲突,会提示你,调用git status查看冲突文件。
         解决冲突,然后调用git add或git rm将解决后的文件暂存。
         所有冲突解决后,git commit 提交更改。]
    	 
    	 
    创建远程分支(本地分支push到远程):git push origin 分支名
    
    	 
    删除分支:git branch -d origin 分支名
    
      删除分支执行git branch -d 分支名
        如果该分支没有合并到主分支会报错,可以用以下命令强制删除git branch -D 分支名
    
    	
    删除远程分支方法一:git push origin :分支名  
    删除远程分支方法二:git push origin --delete 分支名
    撤销修改:git checkout -- file
    放弃所有修改:git checkout .
    回到某一个commit的状态,并重新增添一个commit: git revert commit-id
    比较当前文件和暂存区文件差异: git diff
    
    
    撤销git add
    如果是撤销所有的已经add的文件:  git reset HEAD .
    如果是撤销某个文件或文件夹: git reset HEAD -filename    //filename:文件名或者文件夹名
    
    解决git文件名大小写无法修改的问题,
    git默认配置为忽略大小写,因此无法正确检测大小写的更改
    运行:
    git config core.ignorecase false
    关闭git忽略大小写配置,即可检测到大小写名称更改
    

      

    10、git获取历史版本

    git可以根据commit时生成的SHA值,直接拿到目标版本的所有代码。而且不影响当前的代码。 
    具体操作如下:

    使用gitbash进入git命令行,查看commit记录。操作如下:

    git log

    找到你想提取的目标版本,复制对应的SHA值,新建一个分支,操作如下:

    git branch 新分支名 SHA值

    切换到新的分支,操作如下:

    git checkout 新分支名

    接下来,代码会自动切换成新分支中的代码,也就是历史版本的代码。

    查看项目的所有分支(包括本地和远程) 

    git branch      查看本地分支
    git branch -a 查看远程分支 remotes开头的代表是远程分支

    删除本地分支

    git branch -d 分支名称

    删除远程分支 

    git push origin --delete 分支名称
  • 相关阅读:
    对PostgreSQL的 seq scan , bitmap index scan 和 index scan 的进一步理解
    C# IEnumerable和IEnumerator的区别,如何实现
    老板运煤问题及解决方案
    快速排序和简单排序
    给定数组,查找最小的k个元素或最大的k个元素
    一列数字的规则如下;1,1,2,3,5,8,13,21,34........ 求第30位数字是多少,用递规和非递归两种方法算法实现
    C# 如何利用反射来加载程序集,并调用程序集中有关类的方法
    http 请求 header 应用分析
    templatemonster 10231 面朝大海 你听到什么?
    足球俱乐部 网站模板 附带源文件 字体
  • 原文地址:https://www.cnblogs.com/MrZouJian/p/7736388.html
Copyright © 2011-2022 走看看