zoukankan      html  css  js  c++  java
  • Git学习笔记-快速上手(mac系统)

    git下载和配置

    mac版本下下载git:使用brew install git下载,brew upgrade git更新,

    下载完成后使用git --version查看版本,发现不是最新版,

    因为自动指向了系统自带的git,

    which git 查看,发现指向的是/usr/bin,

    而我们brew安装的最新git是在/usr/local/bin下,

    所以,更新一下环境变量,vim ~/.bash_profile,

    加入export PATH="/usr/local/bin:$PATH",保存,source~/.bash_profile是变量生效,

    之后再看版本,就是最新版啦(自动为mac语言版)

    使用git

    首先,选择一个合适的地方,创建一个空目录:

    mkdir learnGit

    cd learnGit

    通过git init就能把这个文件夹变成git本地仓库啦

    ls -a 能看到有一个.git的隐藏文件

    在该目录下编写一个文件vim readme.txt

    随便写一些东西,保存

    git add readme.txt 把这个文件放入缓存区了

    git commit -m "first Git file" 添加完说明这个文件就放入仓库了

    版本控制

    随便修改一下readme.txt

    vim readme.txt 修改保存,

    然后git add  , git commit

    这样就有两个版本了,要回退版本

    git reset --hard HEAD^   回退到上一个版本

    当然也可以指定回退到哪个版本

    git log 查看版本id

    这时候commit的作用就有了,你可以大概知道这个版本的信息

    git reset --hard (id) 回退到该id的版本
    
    git log只能查看之前操作的版本,那如果要回到之后的版本
    
    就要用git reflog来查看未来版本的id
    
    然后还是reset,可以回到未来的版本

    git checkout -- <filename> 可以撤销上一次对该文件的修改git add之前的

    git reset HEAD <filename> 把add到缓存区的文件取回到本地

    删除文件rm 可以删除本地文件

    要删除仓库里的使用 git rm

    当然如果删除错了还可以回退,git checkout -- <filename> 注意保证该文件是commit后的

    连接远程仓库(已经有大神搭建好了仓库,也就是gitHub)

    ssh-keygen -t rsa -C "email@example.com"  (email是你自己的gitHub账号)

    没有特殊需要就不用设置密码,一路回车➕y

    如果顺利的话,可以在用户主目录(~)里找到.ssh目录,里面有id_rsaid_rsa.pub两个文件,

    cat id_rsa.pub 复制所有显示的内容

    登陆GitHub,打开“Account settings”,“SSH Keys”页面,Add SSH Key,title任意,把复制的内容粘贴到Key里,add Key

    登陆GitHub,然后,在右上角的➕号,NEW repo创建一个新的仓库

    Repository name填入名字,其他都默认,点击create

    根据gitHub的提示,我们可以把本地的仓库跟这个同步起来

    git remote add origin git@github.com:账号/repo名.git

    origin是远程仓库名,建议就写origin

    把本地仓库同步到远程

    git push -u origin master 

    第一次会有警告,一般没问题,可以对照一下RSA https://help.github.com/articles/what-are-github-s-ssh-key-fingerprints/

    之后每次要提交只要git push origin master就行

    在分支里编写文件

    git switch -c dev (最新版本有switch,创建dev分支并进入)

    然后在该分支下写文件,提交文件

    之后在切回master-branch合并一下

    git merge dev 把dev分支的内容合并到master里,

    删除dev分支 git branch -d dev

    git branch可以查看现有的分支

    关联远程仓库后操作(Fork之后的操作,fetch把origin仓库内容拉到本地仓库,rebase同步,再push到自己的远程仓库)


    暂存工作目录git stash

    git fetch upstream  (把远程仓库upstream拉到本地)

    git rebase upstream/master   (同步)

    rebase过程中如果出现冲突,用 'git am --show-current-patch' 命令查看冲突细节,红色为远端,绿色为本地,解决冲突后,

    查看git status,执行git add后继续执行git rebase --continue

    取消已在进行中的rebase操作,执行git rebase --abort,版本回退到执行rebase操作前的状态

    恢复工作区git stash pop

    本地的同步了之后,git pull 与本地master分支同步

    • push无法成功

    一般是由于本地代码与远程仓库代码不一致导致,有两种解决办法

    1. pull远程仓库,修改冲突后再提交 git pull

    2.本地代码覆盖远端代码
      git push --force
      ⚠️远端分支多人使用情况下执行,有可能将他人的commit覆盖删除

     遇到这种一定要先push,保证自己的远程仓库和本地仓库一致。

    远程仓库的分支操作(pull,修改,push,cherry-pick)

    根据远程仓库upstrem的cps分支在本地新增分支

    git checkout -b cps-v2.10.x  --track upstream/cps-v2.10.x
    

     

    接下来把这个分支push到自己个人的远程仓库origin上

    git push origin

    切换分支(代码根据分支改变)

    git checkout <branch> 
    

      

    查看分支

    git branch
    

      

    reabse远程仓库到本地分支

    git fetch upstream (根据remote -v的名字来)
    git reabse upstream/cps-v2.10.x (branch name)

    不增加commit的push

    git commit --amend  
    

    合并多余的commit

    git rebase -i HEAD~3    处理前3个commit
    drop 多余的commit

      

  • 相关阅读:
    mobile safari 下overflow:auto的解决方法
    AT指令控制GPRS模块实现TCP连接的步骤
    在一个activity中添加多个listview
    Android中Bitmap、Drawable、byte[]互换
    AT指令(中文详解版)(二)
    android Splash闪屏的实现
    Android应用自动更新功能的代码实现
    Android自定义控件
    Android中动态更新ListView
    Android软件开发之常用系统控件界面大合集
  • 原文地址:https://www.cnblogs.com/chenne69163/p/12157740.html
Copyright © 2011-2022 走看看