Git命令行(复习)

下面的内容是关于本地仓库和远程(服务器)仓库的版本控制,命令行实现项目版本的上传和更新。当然,只有团队开发,Git才有实际价值。关于Git的实现原理,这里不作介绍。

比较差异

简介

  1. 配制身份
git config --global user.name xxx
git config --global user.email xxx
  1. 创建本地仓库(切换到对应的项目目录下)
git init	;生成一个隐藏的.git文件夹
  1. 添加文件
git add XXX 	;XXX是文件/文件夹
git add .
  1. 提交文件
git commit -m "First commit."
  1. 查看修改内容
git status	;查看自上次提交开始的修改内容
git diff	;查看更改的内容
git diff XXX	;XXX指具体的文件
  1. 撤销未提交的修改
git checkout XXX
git reset HEAD XXX
  1. 查看提交记录
git log
git log id -l	;查看一条提交记录
git log id -l -p	;查看记录详情
  1. 分支操作
git branch	;查看版本库的所有分支
git branch XXX	;创建分支
git checkout XXX 	;切换分支
git merge XXX	;合并分支
git branch -D XXX	;删除分支
  1. 远程协作
git clone url	;下载远程版本库代码
git remote add origin url	;origin=Git地址(url)
git push origin master	;本地内容同步到远程,origin指定远程Git地址
git fetch origin master	;远程同步到本地,代码存放到origin/master分支上
git diff origin/master
git merge origin/master	;将origin/master合并到主分支
git pull origin master	;远程同步到本地,效果等同fetch+merge

总结

1.Git配制:

git config user.name "名字"
git config user.email "邮箱"
git init
tree .git/

2.状态:

git status

3.分区:
Working directory:工作区
Staging area:缓存区
repo:版本库

4.添加&提交:

git add 文件;添加指定文件
git add -A;添加所有工作区文件
git commit;提交到版本库
git commit -m "描述信息";提交到版本库并添加描述信息

补充: ls -R;递归列出目录结构

5.日志和差异比较

git log -1
git log -2
git log --oneline
git log -1 -p
gitk;git日志图形界面

git diff 文件名;比较工作区和缓冲区的差异
git diff --cached;比较缓冲区和版本区的差异(cached=staged)
git diff HEAD;比较工作区和版本区的差异
git checkout;取出缓冲区历史版本
git checkout -- .
git checkout HEAD;取出版本库历史版本

6.Git分支:

分支合并:
 - 快进;fast forward
 - git merge 分支名;新做了一次提交
git checkout -b 分支名;创建分支并切换到此分支(=git branch 分支名; git checkout 分支名)
git branch -v;查所有分支详细信息
git branch -d 分支名;删除指定分支
git diff --cached;比较缓冲区和版本区的差异

7.藏匿工作状态:

git stash;藏匿工作区未完成的工作
git stash list;列出所有藏匿的工作
git stash apply;恢复藏匿的工作
git stash clear;清空所有藏匿的工作

8.标签管理:

git tag;查看所有标签
git tag 标签名;打标签(默认是HEAD指向的分支的最近一次提交)
git tag 标签名 日志提交码-7位;给某次提交打标签
git tag -a 标签名 -m 提示信息;给标签添加提示信息
git tag -d 标签名;删除标签
git show 标签名;查看标签

补充:
git log --oneline;查看所有日志并一行显示一条日志
git checkout 标签名;项目回到指定版本
a=add m=message d=delete

9.项目打包:

git archive -o 包名 HEAD;对项目最新的状态打包(忽略.ignore中的文件)
git archive -o 包名 提交码;对指定状态打包

补充:
git status;查工作区状态
git log -1 --oneline;查最新一次提交的日志
o=output

10.清理工作区:

git clean -f;强制清理工作区
git clean -f -n;预期强制清理工作区
git clean -d -f -n = git clean -dfn;预期强制清理工作区文件夹
git clean -df;强制清理工作区文件夹
git clean -dfi;交互式强制清理工作区文件夹

补充:
f=force n=next d=directory i=interact

11.日志过滤:

git log --oneline | wc -l;查日志条数
git log -10 --oneline;查最新10条
git log --oneline | tail -10;查最旧10条

git log --since='2018-1-1' --oneline | wc -l;查某日期以后的提交
git log --after='2018-1-1' --oneline | wc -l;查某日期以后的提交
git log --before='2013-12-31' --oneline | wc -l;查某日期之前的提交
git log --until='2013-12-31' --oneline | wc -l;查某日期之前的提交
git log --since '1.week';查一周之内的提交
git log --since '3.weeks';查三周之内的提交

git shortlog -sn;查所有作者提交情况
git log --author="作者名" --oneline;查某作者的提交

git log --grep="Source" --oneline;查message中含有Source的提交
git log -S"Source";查修改内容中包含Source的提交
git log --文件名 --oneline;查修改了指定文件的提交
git log 标签名1..标签名2;查两个标签之间的提交

补充:
s=summary n=number

12.Git图形化界面:

git gui;git图形界面
git init gitk && cd gitk;初始化git项目并切换到该项目
gitk;git日志图形界面
gitk --all;查所有分支
git checkout -b dev;创建分支并切换到该分支
git log --oneline --graph --all;查所有分支的提交,graph代表图示

补充:
git add -A;添加所有工作区文件

13.Git远程:

git remote -v;查远程信息
git clone url.git;远程克隆项目
git clone 目录1/.git 目录2;本地克隆项目

git branch -r;查远程分支
git branch -a;查所有分支
git branch -a -v;查所有分支信息
git fetch origin;获取远程分支,不合并到本地分支
git merge origin/master;合并到本地分支

参考:
<第一行代码> 第2版 | 郭霖
图解Git++ | 孙简

发布了10 篇原创文章 · 获赞 1 · 访问量 2321

猜你喜欢

转载自blog.csdn.net/qq_35334269/article/details/94621294
今日推荐