Git的基本用法

2018-08-10  本文已影响0人  rommy020

参考文章:
1: https://www.cnblogs.com/kuyuecs/p/7111749.html
2: http://www.360doc.com/content/16/0519/10/10058718_560380335.shtml

配置 git

git config --global -e

git init
描述:
    在本地新建一个repo,进入一个项目目录,执行git init,会初始化一个repo,并在当前文件夹下创建一个.git文件夹.
例子:

git init

git add
描述:
    将所做的修改放入git的暂存区(staging area)供commit时候使用.会递归地添加当前工作目录中的所有文件.
例子:

#1: 添加所有的修改到缓存区
git add .  

#2: 添加指定的文件到缓存区
git add {filename}

git commit
描述:
    提交已经被添加到暂存区的改动.
    git一般的步骤: add到本地的缓存区 >> 通过commit提交修改.
    该命令有不同的参数:
    a: git commit -m "提交时候的备注" #表示普通提交到本地的仓库
    b: git commit -a #会先把所有已经track的文件的改动add进来,然后提交(有点像svn的一次提交,不用先暂存, 也就是可以忽略git add .). 对于没有track的文件,还是需要git add一下.
    c: git commit -am "提交时候的备注" #其实就是 commit -a & -m, 不用add, 直接提交,和-a, -am相似
例子:

#1: 把用git add .加入到stage的文件提交到本地仓库.
git commit -m "comment"  

#2: 会把所有在track的文件, 都commit
git commit -a 

#3: 其实就是 commit -a & -m, 不用add, 直接提交, 和-a效果类似
git commit -am "comment"

git checkout
描述:
    在本地新建一个repo,进入一个项目目录,执行git init,会初始化一个repo,并在当前文件夹下创建一个.git文件夹.
例子:

git init

#1: 切换到某个分支下面
git checkout  {branch}

#2: 从当前分支的本地缓冲区拉文件覆盖当前文件
git checkout -- {filename}

#3: 从指定的分支拉文件到本地工作区
git checkout {branch} -- {filename}

#4: 移动HEAD到某个版本, 相当于检出指定版本的文件,可以通过git log --oneinline 获得.
git checkout -f {commit}

#5: 用当前版本和指定版本比较2个版本中指定文件的差异
git checkout -p {branch} -- {filename}

#6: 将当前版本修改的内容apply到指定分支下, 然后切换到指定的分支
git checkout --merge {branch}

git branch
描述:
    新建分支

#1: 新建一个分支branch
git branch {branch}

#2: 获取全部的分支
git branch

#3: 基于当前分支的某一次commit创建分支
git branch {ranchname} {commit}

git log
描述:
    查看所有的commit提交记录,他可以有很多参数.
例子:

#1: 最简单
git log
#结果
commit ffb33b8cefba37ef7b5e2f67d07ae39009ab688d
Author: user <email>
Date:   Sun Sep 30 11:05:11 2018 +0800

    change get qrcode url

#2: 一行显示一个提交
git log --oneline
#结果
ffb33b8 comment1
5e7f1dd comment2
5a87301 comment3

#3: 统计某个文件修改了多少
git log --stat app/app.js
#结果
commit ffb33b8cefba37ef7b5e2f67d07ae39009ab688d
Author: user <email>
Date:   Sun Sep 30 11:05:11 2018 +0800

    change get qrcode url

 app/app.js | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

#4: 统计某个文件修改了多少, 具体修改了什么
git log --stat -p app/app.js
结果和git log --stat 差不多,只不过多了具体修改的内容.

#5: 简要的显示每个人做了多少修改
git shortlog
#结果
user (71):
      comment1
      comment2
      comment3

#6: 格式化日志格式, format的占位符可以在文档中获得(git log --help)
$ git log --pretty=format:"%cn committed %h on %cd %s"
#结果
user1 committed ffb33b8 on Sun Sep 30 11:06:39 2018 +0800
user2 committed 0101f7a on Mon Aug 20 11:22:01 2018 +0800
user3 committed 86b77f8 on Mon Jul 30 17:14:55 2018 +0800

#7: 查看最近3次的提交
git log -3
#结果
ffb33b8 change get qrcode url
0101f7a add project.config.json
86b77f8 show qrcode

#8: 想按日期来查看修改(after, before, yesterday, 1 week ago, ...)
git log --after="2018-09-10"
#结果
ffb33b8 change get qrcode url
0101f7a add project.config.json
86b77f8 show qrcode
266787c 增加输出二维码的功能.

#9: 按作者查找
git log --author="xxx"
#结果
commit 0101f7aef71470456eb23aa579c382674e5fa07e
Author: userId <email>
Date:   Mon Aug 20 11:22:01 2018 +0800

    add project.config.json

#10: 按提交信息
git log --grep="xxx"

#11: 按文件
$ git log --oneline  --pretty=format:"%cn committed %h on %cd" app/app.js
#结果
user1 committed ffb33b8 on Sun Sep 30 11:06:39 2018 +0800
user1 committed 5e7f1dd on Fri Jul 20 17:50:30 2018 +0800

git show
描述:
    查看提交的详情, 可以从git log中拿到commit的hashid, 然后通过git show {hashid} 或者 git show {hashid} {filename}来查看详情
例子:

#1: 查看最近一次提交的
git show
#结果
commit ffb33b8cefba37ef7b5e2f67d07ae39009ab688d
Author: userId <email>
Date:   Sun Sep 30 11:05:11 2018 +0800

    change get qrcode url

diff --git a/app/app.js b/app/app.js
index 7745ae5..c7b08b7 100644
--- a/app/app.js
+++ b/app/app.js

#2: 根据文件检查, 和上面#1类似, 只不过是指定了文件名字
git show file.txt

#3: 根据文件, 版本查, 结果和#1一样
git show 7498bb80778fcc9de9f44de62e4d298b7d7f0111 "file01.txt"

比较

#1: 比较远程服务端的master 和 develop的 修改情况
git log origin/master..origin/develop --oneline --pretty=format:"%cn committed %h on %cd"

#2: 统计远程服务端master 和 develop 的修改情况
$ git diff --stat origin/master origin/develop

#3: 和本地缓存比较
git diff -- {文件名字}

github 相关操作

#1: …or create a new repository on the command line
echo "# test" >> README.md
git init
git add README.md
git commit -m "first commit"
git remote add origin https://github.com/yangtao123456/test.git
git push -u origin master

#2: …or push an existing repository from the command line
git remote add origin https://github.com/yangtao123456/test.git
git push -u origin master

#3: …or import code from another repository
You can initialize this repository with code from a Subversion, Mercurial, or TFS project.

分支的合并 参考网站

1: 先切换到准备合并的分支, 比如我想把develop的修改内容合并到master
    git checkout master

2: 合并
    git merge develop
上一篇下一篇

猜你喜欢

热点阅读