菜单

git的就学与常用git命令

2019年5月5日 - 金沙前端

地面代码已经add,已commit


将本地代码多commit三回,再来看下我们的付出log

js金沙所有网址 1

撤回到钦点的版本,包涵文件和景况。

➜  experimentation git:(master) git reset 2a6c701
Unstaged changes after reset:
M       experimentation.txt
➜  experimentation git:(master) ✗ git status
On branch master
Your branch and 'origin/master' have diverged,
and have 4 and 6 different commits each, respectively.
  (use "git pull" to merge the remote branch into yours)
Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git checkout -- <file>..." to discard changes in working directory)

        modified:   experimentation.txt

no changes added to commit (use "git add" and/or "git commit -a")

回退至钦命的本子,差别如下
js金沙所有网址 2

Tip git revert与git reset的区别
git
reset是直接删除钦定的commit在此之前的持有commit(那是不安全的,越发是push后),把HEAD向后活动。
git revert是一遍新的commit,HEAD继续开采进取,与平常的commit同样。

 js金沙所有网址 3

长距离宾馆

ssh-keygen -t rsa -C “youremail@example.com”创建SSH Key

git remote add origin 地址提交代码到长途酒店

git push -u origin master推送到长途客栈

git push origin master提交本地代码的修改

git clone 地址从远程Cook隆代码到地面库

本地代码已经add,未commit

修改本地专业目录中的readme.md,增添文字”第一遍修改”

下一场查看下景况

➜  experimentation git:(master) ✗ git status
On branch master
Your branch is up-to-date with 'origin/master'.
Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git checkout -- <file>..." to discard changes in working directory)

        modified:   README.md

no changes added to commit (use "git add" and/or "git commit -a")

张开Add操作,并查阅意况

➜  experimentation git:(master) ✗ git add README.md
➜  experimentation git:(master) ✗ git status
On branch master
Your branch is up-to-date with 'origin/master'.
Changes to be committed:
  (use "git reset HEAD <file>..." to unstage)

        modified:   README.md

➜  experimentation git:(master) ✗

那儿,变动进入了缓存区(Index)

只是大家蓦然意识大家改造错了,其实自身是想改造experimentation.txt文件。

形式壹:我们本来能够重新修改experimentation和readme文件(删除readme中的修改,给experimentation中加上“第3回修改”),然后再Add

艺术2:我们想的或是是重回从前的add操作,然后给experimentation中拉长“第二次修改”,然后再度Add,那这样的话,大家什么操作呢?

➜  experimentation git:(master) ✗ git reset HEAD README.md
Unstaged changes after reset:
M       README.md
➜  experimentation git:(master) ✗ git status
On branch master
Your branch is up-to-date with 'origin/master'.
Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git checkout -- <file>..." to discard changes in working directory)

        modified:   README.md

no changes added to commit (use "git add" and/or "git commit -a")

Tip git log与git reflog的区别
git reflog
可以查阅全部支行的装有操作记录(包罗commit,reset的操作,已经被删去的commit记录)
git log不能够观测已经删除的commit记录

$ git reset –hard HEAD
放任专业区和index的转移,HEAD指针如故指向当前的commit.(参照第二幅图)

git学习的网站: 廖雪峰的git教程

下边以求实情状作为情境。

git mv a.txt b.txt 把a.txt改名为b.txt

创立版本库

mkdir learngit创立三个索引

cd learngit跳转到目录

pwd展现当前路径

git initgit 货仓的创导

ls -ah呈现隐藏文件能够看来.git文件

基础知识,了解git中的几个区域
js金沙所有网址 4

$ git reset –hard ORIG_HEAD 用来裁撤已经commit 的merge.
$ git reset –hard HEAD 用来撤除还没commit
的merge,其实原理正是割舍index和专门的学业区的更动。

撤销修改

git checkout — readme.txt放任专门的工作区的退换

git reset HEAD readme.txt打消暂存区的退换

git rm readme.txt 不但从stage中删除,同时删除物理文件

去除文件

git rm test.txt删除贰个文书的交由

那条命令同时还是可以用来撤除还没commit的merge,其实原理正是秦伯嫁女index和职业区的改动,因为没commit的改换只存在于index和职业区中。

治本修改

git diff HEAD — readme.txt查看职业区和本子库的歧异

git log –stat 一a肆10e 查看sha1为1a四10e的commit对象的记录

本子回退

git log查看版本记录

git log –pretty=oneline查看带版本号的笔录

git reset –hard HEAD^向上回退二个版本 (多少个^代表回退几个版本100个^写成
HEAD~100)

git reset –hard 362816四数字为版本id 加id可重临特定版本
(id不用写全只写前二位就行了)

git reflog记录每3次命令 (可用来查阅回退前的版本号)

目录: 

充足文书到版本库 (只可以追踪文本文件的改造比方txt文件网页 程序代码等)

js金沙所有网址,git add readme.rtf告诉git增添文书(可一遍增加多个公文 如:git add
file二.txt file三.txtgit commit -m “add 三 files”)

git commit -m “wrote a readme file”提交改动到仓库“”内输入本次交付的内容

git revert 也是收回命令,分裂在于reset是指向原地恐怕向前挪动指针,git
revert是创造叁个commit来覆盖当前的commit,指针向后移动

交给文件修改

git status查看当前酒店状态

git diff查看修改(适用于未增加到修改前的场地)

git add readme.rtf告诉git那个文件被修改

git commit -m “add distributed”提交修改

git commit 把公文从stage提交到branch

支行操作

git checkout -b dev创制1个dev分支

git branch查看当前支行

git checkout master切换到master分支

git merge dev合并dev到当前支行须求切换来master分支

金沙澳门官网网址,git branch -d dev删除dev分支

git blame -L 1贰,2二 sth.cs 借使您开采本身代码中
的1个主意存在缺点,你能够用git
blame来标注文件,查看这几个情势的每1行分别是由什么人在什么日期修改的。上面这么些例子使用了-L选项来界定出口范围在第一二至2二行

js金沙所有网址 5

git diff 相比专门的学业区和stage文件的差异
git diff –cached 相比较stage和branch之间的歧异

Merge类命令

$ git reset –hard HEAD^ 用来撤消已经commit的源委(等价于 git reset
–hard HEAD~壹)
。原理就是倒果为因专门的工作区和index的退换,同时HEAD指针指向前二个commit对象。

在争执状态下,要求减轻顶牛的文件会从index打回去职业区。

相关文章

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图