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

 

  

posted on 2020-01-06 18:11  AnsselCCC  阅读(352)  评论(0编辑  收藏  举报