Git Product home page Git Product logo

基本命令

mkdir #文件名 //创建文件

cd #文件名

pwd //显示当前目录

git init //把这个目录变成git可以管理的仓库

git可以跟踪文本文件的改动

word文件是二进制格式

git commit -m " " // 提交文件-m 后面写说明

git add #文件名

获取信息

git status //获取工作区状态

git diff //获取修改内容

git log //获取历史记录

q退出

git log --pretty=oneline//按行输出

git reset --hard HEAD^ //^个数表示后退版本个数

100个版本 HEAD~100

git reset --hard 版本号 //退回指定版本(包括曾经退掉的版本

git reflog 用来记录每一次的命令命令日志

撤销修改

git restore -- #文件名 //丢弃工作区的修改,

有暂存区先回退到暂存区

无暂存区撤回到版本库

git checkout -- file命令中的--很重要,没有--,就变成了“切换到另一个分支”的命令

git restore --staged #文件名 //将暂存区文件放回工作区

删除文件

rm #文件名

git rm #filename // delete file while staged

git checkout -- #文件名 //从版本库里恢复删除的文件

git restore #文件名

原理

git add 添加到暂存区

git commit 把暂存区的所有东西提交到当前分支

git-repo

Git 跟踪并管理的是修改而非文件

commit 提交的是暂存区里的修改内容而非工作区的

远程库

推送远程库

SSH key : GitHub 用于识别推送是自己提交的

绑定

git remote add origin [email protected]:michaelliao/learngit.git
$ git push -u origin master

推送到远程库上

删除远程库

$ git remote -v

查看远程库信息

$ git remote rm origin

此处的删除时解除了本地和远程的绑定关系

删除origin

要关联一个远程库,使用命令git remote add origin git@server-name:path/repo-name.git

关联一个远程库时必须给远程库指定一个名字,origin是默认习惯命名;

关联后,使用命令git push -u origin master第一次推送master分支的所有内容;

此后,每次本地提交后,只要有必要,就可以使用命令git push origin master推送最新修改;

克隆仓库

git clone #GitHub的地址

ssh协议最快

分支管理

每次提交,Git都把它们串成一条时间线,这条时间线就是一个分支。截止到目前,只有一条时间线,在Git里,这个分支叫主分支,即master分支。HEAD严格来说不是指向提交,而是指向mastermaster才是指向提交的,所以,HEAD指向的就是当前分支。

创建一个新的分支dev,HEAD改下指向,新的提交里dev继续前进

![git-br-dev-fd](E:\OneDrive - mail.sdu.edu.cn\md\image\l.png)

假如我们在dev上的工作完成了,就可以把dev合并到master上。Git怎么合并呢?最简单的方法,就是直接把master指向dev的当前提交,就完成了合并:

![git-br-ff-merge](E:\OneDrive - mail.sdu.edu.cn\md\image\0.png)

首先,我们创建dev分支,然后切换到dev分支:

$ git checkout -b dev
Switched to a new branch 'dev'

git checkout命令加上-b参数表示创建并切换,相当于以下两条命令:

$ git branch dev
$ git checkout dev
Switched to branch 'dev'

然后,用git branch命令查看当前分支:

$ git branch
* dev
  master
$ git merge dev

合并到当前分支

Fast-forward 直接更改指针指向

$ git branch -d dev

创建并切换到新的dev分支,可以使用:

$ git switch -c dev

直接切换到已有的master分支,可以使用:

$ git switch master

总结

Git鼓励大量使用分支:

查看分支:git branch

创建分支:git branch <name>

切换分支:git checkout <name>或者git switch <name>

创建+切换分支:git checkout -b <name>或者git switch -c <name>

合并某分支到当前分支:git merge <name>

删除分支:git branch -d <name>

BUG分支

stash功能,可以把当前工作现场“储藏”起来,等以后恢复现场后继续工作

cherry-pick <commit>命令,能复制一个特定的提交到当前分支

一是用git stash apply恢复,但是恢复后,stash内容并不删除,你需要用git stash drop来删除;

另一种方式是用git stash pop,恢复的同时把stash内容也删

pipixia23333's Projects

first icon first

Config files for my GitHub profile.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.