【Git】git基础教程

向廖大神学习:Git教程 - 廖雪峰的官方网站

下面是自己的一些总结:

1、在windows上安装Git:

在Windows上使用Git,可以从Git官网(Git - Downloads)直接,然后按默认选项安装即可。

2、创建版本库:

首先,选择一个合适的地方,创建一个空目录,通过【git init】命令把这个目录变成Git可以管理的仓库。

也可用命令行创建文档:

$ mkdir learngit
$ cd learngit
$ pwd
/Users/michael/learngit
$ git init
Initialized empty Git repository in /Users/michael/learngit/.git/

注:此时目录下多了一个.git目录;如果你没有看到.git目录,那是因为这个目录默认是隐藏的,用【ls -ah】命令就可以看见。

【mkdir <name>】:创建文件夹。

【cd <name>】:进入文件夹。

【pwd】:用于显示当前目录。

3、查看修改的文件

我们修改文件之后,可以用【git status】命令查看哪些文件被修改了。

如果记不清上次怎么修改的某个文件,可以用【git diff <name>】可以查看修改内容。【cat <name>】可以用来查看文件。

4、提交代码

第一步,用命令【git add <name>】告诉Git,把文件添加到暂存区。注【git add .】表示提交本地所有修改。

第二步,用命令【git commit -m "xxx"】告诉Git,把文件提交到仓库。注:"xxx"表示提交时备注。

5、分支管理

【git branch】:查看本地分支,当前分支前面会标一个*号。

【git branch -a】:查看全部(本地+远程)分支。

【git branch <name>】:创建分支。

【git checkout <name>】:切换分支。在 Git 2.23 版本中,引入了一个名为 git switch <name> 的新命令,最终会取代 git checkout

【git checkout -b <name>】:创建+切换分支。

【git checkout -b <newname> <name>】:创建已有分支+切换到新分支,想在<name>分支新建一个新的<newname>分支。

【git merge <name>】:合并某分支到当前分支,使用Fast-forward“快进模式”合并。第二种合并分支的方法是 git rebase <name> 

【git merge --no-ff <name>】:合并某分支到当前分支,不使用Fast-forward“快进模式”合并,保留分支的commit历史。

【git merge --abort】:取消合并。

【git branch -d <name>】:删除本地分支。

【git push origin --delete <name>】:删除远程分支。注意:分支名不用加‘origin’ !在删除远程分支时,同名的本地分支并不会被删除,所以还需要单独删除本地同名分支。

6、版本回退

HEAD指向的版本就是当前版本,因此,Git允许我们在版本的历史之间穿梭,使用命令【git reset --hard commit_id】
使用【git reset --hard HEAD^】回退上一个版本。
使用【git reset --hard HEAD~100】回退往上100个版本。
穿梭前,用【git log】或者【git log --pretty=oneline】可以查看提交历史,以便确定要回退到哪个版本。
要重返未来,用【git reflog】查看命令历史,以便确定要回到未来的哪个版本。

注:如果回退完版本之后,发现修改的代码不能push,但是pull下来又是回退前的代码,建议用【git push origin master --force】 来强行覆盖远程记录。

7、撤销修改

场景1:命令【git checkout -- readme.txt】意思就是,把readme.txt文件在工作区的修改全部撤销,这里有两种情况:
一种是readme.txt自修改后还没有被add放到暂存区,现在,撤销修改就回到和版本库一模一样的状态;
一种是readme.txt已经add添加到暂存区后,又作了修改,现在,撤销修改就回到添加到暂存区后的状态。
总之,就是让这个文件回到最近一次git commit或git add时的状态。

场景2:你该乱了工作区某个文件的内容,还add添加到了暂存区时,想丢弃修改,分两步,
第一步用命令【git reset HEAD readme.txt】,就回到了场景1,第二步按场景1操作。

8、删除文件

现在你有两个选择,一是确实要从版本库中删除该文件,那就用命令【git rm <name>】删掉,并且【git commit】。现在,文件就从版本库中被删除了。
另一种情况是删错了,因为版本库里还有呢,所以可以很轻松地把误删的文件恢复到最新版本【git checkout -- test.txt】

9、克隆一个本地库

【git clone <name>】例如:git clone git@github.com:michaelliao/gitskills.git

10、git fetch

git fetch 命令用于从远程获取代码库。该命令执行完后需要执行 git merge 远程分支到你所在的分支。

git fetch origin

git merge origin/master

11、如果正在开发的分支并不想提交,但是又需要切换到其他分支去修改bug:

可以使用【git stash】来暂存一下修改,然后使用【git stash pop】来恢复。

一般在开发时总要敲的几个命令循环:

【git checkout -b <name>】:创建+切换分支。

【git add .】:提交本地所有修改。

【git commit -m "xxx"】告诉Git,把文件提交到仓库。

【git pull】:拉取远程修改。

【git push】:提交远程。

【git checkout <name>】:切换分支。

【git merge --no-ff <name>】:合并某分支到当前分支。

一个简单的基于分支的git工作流

查看当前 git 信息

git config --list

查看 git 用户名、邮箱

git config user.name

git config user.email

配置 git 用户名

git config --global user.name "xxx(新的用户名)"

配置 git 邮箱信息

git config --global user.email "xxxx@xxx.com(新的邮箱)"

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值