git常见用法和核心策略

版本库又名仓库,英文名repository,你能够简单理解成一个目录,这个目录里面的全部文件均可以被Git管理起来,每一个文件的修改、删除,Git都能跟踪,以便任什么时候刻均可以追踪历史,或者在未来某个时刻能够“还原”。html

程序员必读

Css3编码技巧前端

建立并提交一个版本库

课外知识: mkdir 建立目录; pwd 显示绝对路径; cat 文件名 查看文件内容 注:全部的版本控制系统,其实只能跟踪文本文件的改动,好比TXT文件,网页,全部的程序代码等等,Git也不例外。而图片、视频这些二进制文件,虽然也能由版本控制系统管理,但无法跟踪文件的变化,只能把二进制文件每次改动串起来,也就是只知道图片从100KB改为了120KB,但到底改了啥,版本控制系统不知道,也无法知道。vue

Microsoft的Word格式是二进制格式,所以,版本控制系统是无法跟踪Word文件的改动的,若是要真要使用版本控制系统,就要以纯文本方式编写文件。 千万不要使用Windows自带的记事本编辑任何文本文件,缘由是Microsoft开发记事本的团队,在每一个文件开头添加了0xefbbbf(十六进制)的字符,你会遇到不少难以想象的问题.react

1.核心操做

# 1.初始化仓库,.git目录默认隐藏,能够经过命令ls -ah显示
git init

# 2.把文件添加到版本库,能够一次添加多个文件,git add . 表明把全部文件所有提交
git add 文件名 文件名

# 3.把文件提交到当前分支
git commit -m '本次提交的说明'

# 4.把项目提交到(远程)仓储
git push
复制代码

2.分支管理

# 1.查看远程分支
git branch -a

# 2.查看本地分支
git branch

# 3.建立并切换分支 (加-b表示建立并切换)
git checkout -b 分支名

# 4.切换回分支
git checkout 分支名

# 5.从主分支里建立新分支
git checkout master -b 新分支名

# 6.合并某分支到当前分支
git merge 分支名

# 7.删除分支
git branch -d 分支名
git branch -D 分支名 (强行删除分支)
复制代码

3.解决冲突

# 情景一 提交或拉取时冲突
git stash
git pull
git stash pop

# 情景二 若是你想彻底地覆盖本地的代码,只保留服务器端代码,则直接回退到上一个版本,再进行pull
git reset --hard HEAD^
git pull origin master
# 注:origin master表示git的主分支

# 情景三 分支合并时冲突(当咱们git merge 分支名 时)
1.git status (查看发生冲突的文)
2.而后手动合并冲突
3.git add .  (添加更改后的文件)
4.git commit -m 'xj' (提交)
复制代码

4.查看ssh密钥

# 1.进入.ssh目录
cd ~/.ssh
# 2.查看id_rsa.pub文件
cat id_rsa.pub
复制代码

5.克隆远程项目

git clone 远程源地址
复制代码

6.回退某个操做

# 1.查看命令历史
git reflog
# 2.根据commitID撤销某个操做
git reset --hard 某个commitId
复制代码

7.和远程分支创建关联

git branch --set-upstream-to=origin/远程分支的名字 本地分支名
复制代码

8.删除文件

# 删除版本库中的文件
git rm filename
# 恢复工做区中误删的文件
git checkout -- filename
# 注:git checkout实际上是用版本库里的版本替换工做区的版本,不管工做区是修改仍是删除,均可以“一键还原”。
复制代码

9.远程仓储

# 1.建立sshkey密钥
ssh-keygen -t rsa -C "youremail@example.com"
# 2.在远程仓库中添加ssh公钥
# 3.关联远程库
git remote add origin git@server-name:path/repo-name.git
# 4.第一次推送master分支的全部内容,此后只须要使用git push origin master便可推送最新修改
git push -u origin master
复制代码

10.多人协做

# 1.查看远程仓储的详细信息
git remote -v
# 2.推送本地分支到远程仓库,
  #1.若是发生冲突,用git pull试图合并,若是发生冲突则解决冲突,再进行推送
  #2.若是git pull后提示no tracking information(没有追踪信息),则进行第四项,创建关联,以后pull,有冲突再合并
git push origin 本地分支名
# 3.在本地建立和远程分支对应的分支
git checkout -b 本地分支 origin/远程分支名
# 4.创建本地分支和远程分支的关联
git branch --set-upstream 本地分支名 origin/远程分支名
复制代码

11.分支策略

1.master分支应该是很是稳定的,也就是仅用来发布新版本,平时不能在上面干活;
2.干活都在dev分支上,也就是说,dev分支是不稳定的,到某个时候,好比1.0版本发布时,再把dev分支合并到master上,在master分支发布1.0版本;
3.每一个人都有本身的分支,时不时地往dev分支上合并就能够了
复制代码

补充jquery

# git fetch和git pull的区别
与git pull相比git fetch至关因而从远程获取最新版本到本地,但不会自动merge。若是须要有选择的合并git fetch是更好的选择。效果相同时git pull将更为快捷。

# 查看仓库当前的状态
git status

// 查看提交日志
git log

# 回退版本,在git中用HEAD表示当前版本,HEAD^表示上一个版本,HEAD^^表示上上个版本
git reset --hard HEAD^ 或
git reset --hard 3628164 (数字表明log里commit后面的id,只须要填前几位就能够)

# 窗口关闭后回退版本(git reflog用来记录你的每一次命令)
git reflog

# 工做区和暂存区
工做区就是你创建的能看见的目录,.git即为git的版本库,Git的版本库里存了不少东西,其中最重要的就是称为stage(或者叫index)的暂存区,Git为咱们自动建立的第一个分支master,以及指向master的一个指针叫HEAD。
用git add把文件添加进去,实际上就是把文件修改添加到暂存区;
用git commit提交更改,实际上就是把暂存区的全部内容提交到当前分支

# 撤销修改
1.直接丢弃工做区的修改,用命令git checkout -- file
2.修改添加到了暂存区,想丢弃修改,分两步,第一步用命令git reset HEAD file,就回到了场景1,第二步按场景1操做

复制代码

最后,欢迎加入前端技术群,一块儿探讨前端的魅力 webpack

image.png

更多推荐

相关文章
相关标签/搜索