Git命令的简单整理

自动帮助记录每次文件的改动,同时协作永工作

学习git命令是充分必要的

1、集中式和分布式

分布式每个人电脑都是一个完整的版本库,也有类似中央服务器的电脑,但是这个服务器只是用来交互打架的修改没有它大家也一样干活,只是交互修改不方便而已。

安装只要安装了xcode就可以了

仓库:里面文件修改、删除、添加都能被git追踪,任何时刻都能追踪历史或者只能追踪将来某个时刻还原文本文件的改动。

 

2、创建目录和查看路径

mkdir 创建目录

cd 进入到目录里面

pwd 用于显示当前的目录

cat 查看文件内容

 

3、git命令使用说明

初始化一个目录成git的仓库(版本库)包括暂存区和master分支

git init(查看当前目录的文件包含隐藏文件)

ls -ah (获取git命令手册页)

git help (使用git前需要进行一些全局的配置)

> 用户目录下的配置,当前登陆用户所有的仓库调用这个配置 ~/.gitconfig

> 项目目录的配置,优先级高,覆盖全局配置。

配置用户名和邮箱

git config --global user.name "wirelessqa"

git config --global user.email wirelessqa.me@gmail.com

git config --global color.ui true (让Git显示颜色,回让命令输出看起来更醒目)

.gitignore 配置不纳入git管理主要是系统文件、编译文件、自定义文件(这个文件也用推送到远程库)

https://github.com/github/gitignore,创建touch命令

配置编辑器git在需要输入一些消息:

git config --global core.editor emacs

配置比较工具:

git config --global merge.tool vimdiff

配置读取(同一个配置选项会出现多次,以最后一个为准):

git config --list

 

4、提交文件之前

先查看当前的状态,能提示你接下来怎么做的命令,比如修改工作区文件内容,提示你添加到暂存区或丢弃工作区修改的命令:

git status

查看文件到底修改了什么:

git diff

 

5、提交修改

纳入git仓库管理,把修改添加到暂存区(使用.代表将所有的修改进行添加):

git add .

把暂存区里面的所有修改提交到当前分支同时创建一个快照:

git commit -m ""

如果确认当前所有变更都是同一个commit,可以直接加-a,就不必一个一个add了:

git commit -a -m ""

工作区和版本库里最新版本的区别:

git diff HEAD -- readme.txt

查看提交历史:

git log --pretty=oneline

 

6、撤销修改

git checkout -- readme.txt

> 修改后还没有添加到暂存区,撤销修改回到最近一次commit的状态,也就是和版本库里面的状态一样。

> 修改后被添加到暂存库了,又做了修改,撤销修改就到添加暂存区后的状态,也就是跟暂存区里面的状态保持一致。

> 用版本库里的版本替换工作去的版本,无论工作区是修改还是删除

可以把暂存区的修改撤销掉:

git reset HEAD file

提交文件删除修改到暂存区:

git rm test.txt

 

7、 版本回退

git 的版本回退知识改了head指针,顺便把工作区的文件更新掉了:

git reset --hard HEAD^ 或 git reset --hard 3628164

 

8、查看命令历史

可以看到reset和commit等命令历史,可以利用这个命令查看最近一次commit:

git reflog

 

9、工作区和暂存区

工作区:电脑上能看到的目录,里面有个git隐藏目录这个不算工作区,是git的版本库。

版本库里面包含暂存区stage和git为我们自动创建一个分支。

 

10、远程库管理

查看远程信息:

git remote -v

修改远程仓库地址(在已经add了远程仓库地址,使用它进行修改地址):

git remote set-url origin https://github.com/USERNAME/OTHERREP.git

关联远程库(添加远程仓库地址):

git remote add origin git@github.com:linhcode/first-test.git

本地的master分支推送到远程的master分支上,原则就是master分支要与远程同步,dev分支开发分支,也需要远程同步:

git push origin master

master分支推送到远程的master分支,本地master分支和远程master分支建立关联:

git push -u origin master

Git自动把本地的master分支和远程master分支对应起来了,并且远程仓库的默认名称是origin:

git clone git@github.com:linhcode/first-test.git

git pull 如果提示冲突解决冲突抓取信息碰到没有链接有两种方式解决:

> git branch --set-upstream branch-name origin/branch-name 建立本地分支和远程分支的关联

> git pull origin branch-name

 

11、分支管理

> 1、不完整的代码在其它分支上提交。

> 2、每个提交都在一个时间线上的节点上,分支相当于指向一个节点的指针。

head本质上是指向分支指针:

创建并切换分支:

git checkout -b dev

本地分支创建和远程分支相同的分支,主要是仓库从远程clone过来的(一般要线git fetch,在git checkout -b branch-name origin/branch-name):

git checkout -b branch-name origin/branch-name

创建分支:

git branch dev

切换分支,如果当前的工作只完成一半,还没发提交的话:

git checkout dev

可以用git stash 保存工作现场,在用它之前可以git stash lish 查看有几个暂存列表

查看有几个暂存列表:

git stash list

保存工作现场:

git stach

恢复工作现场:

git stash apply

删除工作现场:

git stash drop

查看当前分支:

git branch

查看远程分支:

git branch -r

合并分支:

git merge dev 

删除分支:

git branch -d dev 

强行删除分支:

git branch -D dev

冒号前面的空格不能少,原理是一个空分支push到server上,相当于删除该分支

git push origin :bransh-name

提交本地test分支作为远程的master分支

git push origin test:master

提交本地test分支作为远程的test分支

git push origin test:test

刚提交到远程的test将被删除,但是本地还会保存的,不用担心

git push origin :test

查看分支合并图

git log --graph

查看提交历史

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

合并分支

git merge branchname

合并分支的时候不采用ff模式(分支删除了还能看的到分支历史信息)

git merge --no-ff -m "merged bug fix 101" issue-101

 

12 标签管理

描述开发历程,在发布一个版本的时候打一个标签

查看所有标签

git tag

对某一个提交历史打一个标签

git tag v1.0 [commit id]

查看标签信息

git show [tagname]

正式开发下最好用这条语句注下这个标签的描述

git tag -a v0.1 -m "version 0.1 released" 3628164

删除标签

git tag -d v0.1

推送全部标签

git push orgin --tags

远程删除标签(先从本地删除标签)

git push origin :refs/tags/v0.9

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

u014068781

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值