Git使用指南

原作者:John

原文链接:git使用指南 | John知识分享因为家中自己电脑的小项目和公司电脑自己的项目不一样,每次想在家中继续撸公司电脑上代码时会稍微麻烦点。之前的做法是上传网盘,今天突然想到直接上传git私有仓库可能更方便一点。便有了这篇记录http://www.fdfangzhou.top/posts/4234733254.html/

一、安装git

此处忽略

二、创建ssh key、配置git

  • 1、设置usernameemail

    1
    2
    
    $ git config --global user.name "John"
    $ git config --global user.email "xxxxxxx@qq.com"
    
  • 2、通过终端命令创建ssh key

    1
    
    $ ssh-keygen -t rsa -C "xxxxxxx@qq.com"
    

    这时会要求确认路径和输入密码,我们这使用默认的一路回车就行。成功的话会在提示的目录下生成.ssh文件夹,进去,打开id_rsa.pub,复制里面的key

  • 3、登录GitHub,添加ssh key,点击SettingsSSH and GPG keysNew SSH key,将复制的key粘贴到Key中,并配置一个Title,点击Add SSH key

  • 4、设置git代理(科学上网)

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    
    # 设置ss
    $ git config --global http.proxy 'socks5://127.0.0.1:1080'
    $ git config --global https.proxy 'socks5://127.0.0.1:1080'
    
    # 设置代理
    $ git config --global https.proxy http://127.0.0.1:1080
    $ git config --global https.proxy https://127.0.0.1:1080
    
    # 取消代理
    $ git config --global --unset http.proxy
    $ git config --global --unset https.proxy
    
  • 5、链接验证

    1
    2
    3
    4
    
    $ ssh -T git@github.com
    
    # 出现下方提示说明已经链接成功
    Hi John! You've successfully authenticated, but GitHub does not provide shell access.
    

三、忽略不想提交的文件

  • 在项目中添加.gitignore文件,填写要忽略的文件或文件夹

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    
    # 一些常用的忽略文件
    .idea/
    target/
    .gitignore
    
    # 简单的忽略匹配规则
    *.a       # 忽略所有 .a 结尾的文件
    /TODO     # 仅仅忽略项目根目录下的 TODO 文件,不包括 subdir/TODO
    build/    # 忽略 build/ 目录下的所有文件
    doc/*.txt # 会忽略 doc/notes.txt 但不包括 doc/server/arch.txt
    

    然后在push项目,这样不会把.idea文件夹提交到远端

  • 如果已经把.idea文件夹一起提交了,需要将远端提交的文件给删掉

    1
    2
    3
    4
    5
    
    # 加上 -n 这个参数,执行命令时,是不会删除任何文件,而是展示此命令要删除的文件列表预览。
    $ git rm -r -n --cached 文件/文件夹名称 
    
    # 确定无误后删除文件
    $ git rm -r --cached .idea
    

    删除后,再在项目中添加 .gitignore文件,并设置要忽略的文件或文件夹

    最后再push,把删除和.gitignore都提交远端,远端的.idea会被删除。同时以后再push时就不会提交.idea

四、推送代码到远程仓库

  • 1、进入想推送到仓库的文件夹中

  • 2、依次执行命令

    1
    2
    3
    4
    5
    
    $ git init   # 初始化版本库
    
    $ git add .  # 添加文件到版本库(只是添加到缓存区),.代表添加文件夹下所有文件 
    
    $ git commit -m "first commit" 	# 把添加的文件提交到版本库,并填写提交备注
    

    到目前为止,我们完成了代码库的初始化,但代码是在本地,还没有提交到远程服务器

  • 3、把当前分支master推送到远程代码服务器

    1
    2
    3
    4
    5
    
    $ git remote add origin https://github.com/xxxx/xxxx.git  # 把本地库与远程库关联
    
    $ git push -u origin master   # 第一次推送时,先将本地分支与远程同名分支相关联
    
    $ git push origin master 	  # 第一次推送后,直接使用该命令即可推送修改
    
  • 4、push 命令详解

    • 本地当前分支 推送到 远程指定分支上

      1
      
      $ git push origin <本地分支名>:<远程分支名>
      
    • 本地当前分支 推送到 与本地当前分支同名的远程分支上

      1
      
      $ git push origin <本地分支名>
      
    • 本地当前分支 推送到 与本地当前分支同名的远程分支上(需先关联远程分支,方法见第一次推送)

      1
      
      $ git push
      

五、从远程仓库拉取代码

  • 一般项目中,需要先将最新代码拉取到本地,再push上去

  • pull 命令详解

    • 远程指定分支 拉取到 本地指定分支上

      1
      
      git pull origin <远程分支名>:<本地分支名>
      
    • 远程指定分支 拉取到 本地当前分支上

      1
      
      git pull origin <远程分支名>
      
    • 将与本地当前分支同名的远程分支 拉取到 本地当前分支上(需先关联远程分支,方法见第一次推送)

      1
      
      git pull
      

六、Git恢复之前版本的方法

  • 1、git reset(回退):修改HEAD的位置,即将HEAD指向的位置改变为之前存在的某个版本。如从版本三回退到版本一,那么版本二、版本三都不见了

    • 查看版本号

      1
      2
      3
      4
      5
      
      # 显示所有提交过的版本信息
      $ git log
      
      # 查看所有分支的所有操作记录(包括已经被删除的 commit 记录和 reset 的操作)
      $ git reflog
      
    • 使用git reset --hard 目标版本号命令将版本回退到目标版本

      1
      
      $ git reset --hard f42aa0e
      
    • 使用git push -f提交更改

      此时如果用“git push”会报错,因为我们本地库HEAD指向的版本比远程库的要旧

      1
      2
      3
      4
      
      hint: Updates were rejected because the tip of your current branch is behind 
      hint: its remote counterpart. Integrate the remote changes (e.g. 
      hint: 'git pull ...') before pushing again. 
      hint: See the 'Note about fast-forwards' in 'git push --help' for details.
      

      所以我们强制推上去就可以了

      1
      
      $ git push -f
      
  • 2、git revert(反做):反做某一个版本,以达到撤销该版本的修改的目的。如发现版本二有bug,想要撤销版本二,但又不想影响撤销版本三的提交,就可以用 git revert 命令来反做版本二,生成新的版本四。这个版本四里会保留版本三的东西,但撤销了版本二的东西

    • 查看版本号

      1
      2
      3
      4
      5
      
      # 显示所有提交过的版本信息
      $ git log
      
      # 查看所有分支的所有操作记录(包括已经被删除的 commit 记录和 reset 的操作)
      $ git reflog
      
    • 使用git revert -n 版本号反做

      1
      2
      3
      
      $ git revert -n 8b89621019c9adc6fc4d242cd41daeb13aeb9861	# 反做版本号为8b89621的版本
      
      # 这里可能会出现冲突,那么需要手动修改冲突的文件。而且要git add 文件名
      
    • 使用git commit -m 版本名提交

      1
      
      $ git commit -m "revert add text.txt" 
      
    • 推上远程库

      1
      
      $ git push
      
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值