分享学习心得,记录学习笔记
文章:38   访问:110366
今天是:
2019年10月19日 星期六
  >   文章列表   >   文章详情

本文说明:

编辑:xj@milinger.com
日期:2017.12.09
说明:本文介绍Git的常用命令,旨在快捷使用,和复习点拨,要完整学习Git功能,可以参考推荐文章中的链接。

推荐文章:

廖雪峰的网站 Git教程

Git官网

Git官方下载地址 https://git-scm.com/download

一、新建一个本地仓库

  1. 运行git bash

  2. 因为Git是分布式版本控制系统,所以,每个用户需要声明自己的身份:你的名字和Email地址

$ git config --global user.name zhangsan$ git config --global user.email zhangsan@email.com
  1. 用命令移步至需要的路径

  2. 通过git init命令把这个目录变成Git可以管理的仓库

$ git init

二、文件操作

  1. 在该目录中编写一个文件readme.txt(不要使用微软的记事本,推荐notepad++)

  2. 将文件提交到缓存区,待提交

$ git add readme.txt
  1. 将文件提交到仓库 (-m后面是本次提交的说明,便于在历史记录里找到改动记录)
$ git commit -m "add a readme file"
  • commit可以一次提交多个文件,可以多次add不同的文件,然后通过一次提交

  • 查看文件可以用Linux命令中的cat和tail

  1. 删除文件
$ rm test.txt$ git rm test.txt$ git commit -m "remove test.txt"

三、仓库状态查询

  1. 查看仓库当前的状态
$ git status
  1. 查看具体修改了什么内容
$ git diff readme.txt
  1. 查看修改历史
$ git logcommit 9ab674cb2c5dacee3dfa026aab2596a42ecd8915 (HEAD -> master)  Author: xj <xj@milinger.com>  Date:   Fri Dec 8 14:24:17 2017 +0800  
  • 版本号为SHA1编码
  • HEAD表示当前版本
  • 如果觉的看得眼花缭乱的,可以试试加上--pretty=oneline参数
$ git log --pretty=oneline
  • 显示commit编号的缩写
$ git log --pretty=oneline --abbrev-commit

四、版本操作

  1. 版本退回
$ git reset --hard HEAD^
  • HEAD表示当前版本;
  • 上一个版本就是HEAD^;
  • 上上一个版本就是HEAD^^;
  • 上多少个版本用数字表示如:HEAD~100
  1. 退回以前的版本之后,git log就看不到后面的记录了,还想还原后面的状态需要当前命令窗口没关闭,找到需要还原的版本号,用带版本号的命令,版本号不用写全
$ git reset --hard 909cd
  1. 查看命令记录
$ git reflog
  1. 撤销修改
  • 如果把文件改了,还没有添加到缓存区,或者添加到了缓存区,又修改了,要还原到缓存区里面的那个状态,要撤销修改
$ git checkout -- readme.txt
  • 如果已经提交到缓存区了,要撤回到没修改状态,同时清除掉缓存区里的那个记录
$ git reset HEAD readme.txt

五、远程(这里讲用GitHub)

  • 由于本地Git仓库和GitHub仓库之间的传输是通过SSH加密的,所以需要一些设置:
  1. 创建SSH Key。 看C盘用户目录下没有.ssh目录,如果有,再看看这个目录下有没有id_rsa和id_rsa.pub这两个文件,如果已经有了,可直接跳到下一步。如果没有,打开Shell(Windows下打开Git Bash) 创建SSH Key:
$ ssh-keygen -t rsa -C "youremail@example.com"
  • id_rsa是私钥,不能泄露出去;
  • id_rsa.pub是公钥;可以放心地告诉任何人。
  1. 在GitHub setting/account /ssh中添加公钥

  2. 关联远程仓库

$ git remote add origin git@github.com:fuyelk/GIT_PHP.git
  1. 查看关联的库
$ git remote -v
  1. 删除关联
$ git remote rm origin
  1. 把本地库的所有内容推送到远程库上:
$ git push -u origin master
  • 第一次推送需要-u 以后不需要
  1. 从远程获取最新数据 $ git pull
8. 从远程仓库克隆到本地

$ git clone git@github.com:fuyelk/gitskills.git

### 六、分支1. 创建分支:

$ git branch 分支名

2. 创建远程服务器上的分支到本地(克隆服务器库到本地只会克隆master,其他分支需要手动克隆):

$ git checkout -b 分支名 origin/分支名

* origin为远程服务器的默认别名3. 切换分支:

$ git checkout 分支名

4. 创建并切换分支另一种写法:

$ git checkout -b 分支名

5. 删除分支:

$ git branch -d 分支名

6. 强制删除分支:

$ git branch -D 分支名

7. 查看所有分支:

$ git branch

* 当前分支前有一个*8. 合并分支:

$ git merge 分支名

9. 合并分支,禁止快捷合并模式:

$ git merge --no-ff -m "merge with no-ff" dev

* 由于不用快捷合并,需要新建commit,后面加上的是commit说明### 进度保存1. 将当前修改存储,暂不提交

$ git stash

2. 查看保存的进度

$ git stash list

3. 恢复进度:方法一(恢复后,stash内容需要手动删除):* 恢复

$ git stash apply

* 删除stash

$ git stash drop

方法二:* 恢复的同时把stash内容也删了

$ git stash pop

### 八、标签(便于记忆commit编号)1. 先切换到需要设置标签的分支

$ git checkout master

2. 设置标签(默认设置在最近一次commit)

$ git tag v1.0

3. 设置以前的commit* 先查看commit记录

$ git log --pretty=oneline --abbrev-commit

* 再为对应commit编号设置标签

$ git tag 标签名 commit编号

4. 查看标签

$ git tag

5. 查看标签详情

$ git show 标签名

6. 删除标签

$ git tag -d 标签名

7. 推送本地标签到远程

$ git push origin 标签名

8. 推送本地全部标签到远程

$ git push origin --tags

9. 删除远程标签	1. 删除本地标签	```		$ git tag -d 标签名	```	2. 删除远程标签	```		$ git push origin :refs/tags/标签名	```	### 九、其他操作1. 创建忽略提交的文件名单2. 在工作区目录创建一个.gitignore文件,内容自定义  

# Windows: Thumbs.db ehthumbs.db Desktop.ini # My configurations: config.php deploy_key_rsa

* windows不允许保存没有名字的文件,但是文本编辑器可以另存一个这样的文件。* 有时候文件不能上传可能是忽略规则里面限制了2. 检查文件被那个规则限制了

$ git check-ignore -v test.class .gitignore:3:*.class test.class

* 会显示出.gitignore第三行的规则限制了这个文件----END----

友情链接 doywb

2018 Copyright© 米灵尔 小熊 豫ICP备15007436号-1

豫公网安备 41152302000146号