持续总结Git日常使用
git 基础
配置
Git 全局设置:
git config --global user.name "用户名"
git config --global user.email "邮箱"
创建Git仓库:
# 创建目录
mkdir demo
# 切换到目录
cd demo
# 初始化仓库
git init
# 创建测试文件
touch README.md
# 增加到暂存区
git add README.md
# 提交到本地仓库并注释
git commit -m '首次提交'
# 添加远程仓库
git remote add origin 仓库地址
# 将本地的master分支推送到远程origin,并制定origin为默认主机,后面就可以不加任何参数使用git push
git push -u origin master
已有仓库?
# 切换到已存在仓库目录
cd existing_git_repo
# 添加至远程仓库
git remote add origin 仓库地址
# 将本地的master分支推送到远程origin,并制定origin为默认主机,后面就可以不加任何参数使用git push
git push -u origin master
操作
git status
名称
git-status - 显示工作树状态 Show the working tree status
概要
git status [<选项>…] [–] […]
描述
显示索引文件和当前HEAD提交之间有差异的路径,工作区和索引文件之间具有差异的路径,以及Git未跟踪(并且gitignore文件不忽略的工作路径)的路径。第一部分是可以通过git commit将要从本地暂存区提交到本地仓库的内容,第二部分是可以通过git add来添加到本地暂存区的内容。
例如:
$ git status
On branch master
Changes to be committed:
(use "git reset HEAD <file>..." to unstage)
new file: a.txt
Untracked files:
(use "git add <file>..." to include in what will be committed)
b.txt
c.txt
日常使用:git status --stat
git status --stat
git add
描述
将本地文件,增加到本地暂存区
$ touch d.txt
$ echo dddd > d.txt
$ git status
On branch master
Changes to be committed:
(use "git reset HEAD <file>..." to unstage)
new file: a.txt
Untracked files:
(use "git add <file>..." to include in what will be committed)
b.txt
c.txt
d.txt
$ git add d.txt
$ git status
On branch master
Changes to be committed:
(use "git reset HEAD <file>..." to unstage)
new file: a.txt
new file: d.txt
Untracked files:
(use "git add <file>..." to include in what will be committed)
b.txt
c.txt
git commit
描述
将本地暂存区,提交到本地仓库
$ git commit -m '添加a和d文本文件'
[master 915a3f8] 添加a和d文本文件
2 files changed, 1 insertion(+)
create mode 100644 a.txt
create mode 100644 d.txt
$ git log --stat -1
commit 915a3f8660ddd8c712b3b3fedcee1760130f56b1 (HEAD -> master)
Author: flybing <j1473131333@163.com>
Date: Mon May 25 23:28:02 2020 +0800
添加a和d文本文件
a.txt | 0
d.txt | 1 +
2 files changed, 1 insertion(+)
git log
描述
查看提交到仓库的记录
$ git log --stat -1
commit 915a3f8660ddd8c712b3b3fedcee1760130f56b1 (HEAD -> master)
Author: flybing <j1473131333@163.com>
Date: Mon May 25 23:28:02 2020 +0800
添加a和d文本文件
a.txt | 0
d.txt | 1 +
2 files changed, 1 insertion(+)
git push
描述
将本地仓库内容提交到远程仓库
git push origin master
git remote
git rebase
git 进阶
-
基本操作
-
日常开发的使用流程
- git init
- ls -al
- git config [–global] user.name {username}
- git config [–global] user.email {email}
- git status / git status --stat /git status -p
- touch repo.txt
- git add
- git rm --cached {filename}
- git commit / git commit -a / git commit -a -m /git commit --amend
- git log / git log --pretty=oneline / git log --oneline/ git reflog
- git push / git push origin master / git push origin dev
- git show {version}
-
仓库初始化
git init
-
查看.git目录
ls -al
- 配置用户名
git config --global user.name flybing_glb
- 配置邮箱
git config --global user.email flybing_glb@glb.com
- 状态查看
git status / git status --stat /git status -p
- 增加到暂存区
git add
- 暂存区撤销到工作区
git rm --cached {filename}
- 提交到本地仓库
git commit / git commit -a / git commit -a -m /git commit --amend
- 日志查看
git log / git log --pretty=oneline / git log --oneline/ git reflog
- 推至仓库
git push / git push origin master / git push origin dev
-
-
场景
-
远端仓库改变
-
查看远程仓库
git remote -v
-
增加远程仓库
git remote add origin git@gitee.com:flybingcode/jx-demo.git
git remote add test git@gitee.com:flybingcode/jx-test.git
-
更新远程仓库地址
git remote set-url --push test git@gitee.com:flybingcode/jx-test-2.git
-
-
多远端仓库
-
同一个仓库别名设置多个仓库地址(添加多个地址前,本地远程仓库必须存在)
git remote set-url --add origin git@gitee.com:flybingcode/jx-demo-2.git
-
-
分支的使用
-
什么是分支?
说明:版本控制过程中,使用多条线同时推进多个任务
-
分支的好处?
- 同时并行推进多个功能开发,提高开发效率
- 各个分支在开发过程中,如果一个分支开发失败,不会对其他分支有任何影响。失败的分支删除重新开始
-
基本操作,例如CRM标准版,需要增加新功能,使用分支实现
创建分支
git branch dev
切换分支
git checkout dev
或者:创建并切换分支
git checkout -b dev
删除分支
git branch -d dev
推送本地分支到远程其他分支
git push origin master:test
设置当前分支为push默认分支
git config --global push.default “current” / git push origin {branch_name}-
分支冲突的解决
git checkout -b dev
echo ‘dev conflict’ > a.txt
git branch master
echo ‘master conflict’ > a.txt
git branch dev
git merge master
git reset --hard HEAD // 退出merging
-
-
-
-
日常使用
-
详细信息
git blame
-
合并提交
git rebase -i
-
显示差异
-
工作区和暂存区
git diff {filename}
-
工作区和本地库
git diff HEAD {filename}
-
工作区和某个版本库
git diff HEAD^ {fileanme}
-
版本管理,使用HEAD指针,回退或前进,就是改变HEAD指针的位置
-
版本回退
git reset --hard/–soft/–mixed
git reset --hard HEAD^ # 只能后退
git reset --hard HEAD~1
git reset --hard {version}
-
-
-
-
扩展
https://username:password@gitee.com/flybing/test.git
fork
pull_request