Git基本操作(Linux)
Posted 一步棋
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Git基本操作(Linux)相关的知识,希望对你有一定的参考价值。
- 创建文件
[[email protected] git_data]# touch README [[email protected] git_data]# git status
# 位于分支 master
#
# 初始提交
#
# 未跟踪的文件:
# (使用 "git add <file>..." 以包含要提交的内容)
#
# README
提交为空,但是存在尚未跟踪的文件(使用 "git add" 建立跟踪)
# 位于分支 master
#
# 初始提交
#
# 未跟踪的文件:
# (使用 "git add <file>..." 以包含要提交的内容)
#
# README
提交为空,但是存在尚未跟踪的文件(使用 "git add" 建立跟踪)
添加文件跟踪
[[email protected] git_data]# git add ./*
[[email protected] git_data]# git status
# 位于分支 master
#
# 初始提交
#
# 要提交的变更:
# (使用 "git rm --cached <file>..." 撤出暂存区)
#
# 新文件: README
#
[[email protected] git_data]# git status
# 位于分支 master
#
# 初始提交
#
# 要提交的变更:
# (使用 "git rm --cached <file>..." 撤出暂存区)
#
# 新文件: README
#
由工作区提交到本地仓库
[[email protected] git_data]# git commit -m ‘first commit‘
[master(根提交) bb963eb] first commit
1 file changed, 0 insertions(+), 0 deletions(-)
create mode 100644 README
[master(根提交) bb963eb] first commit
1 file changed, 0 insertions(+), 0 deletions(-)
create mode 100644 README
查看git的状态
- 添加新文件
git add * 添加到暂存区域
git commit 提交git仓库 -m 后面接上注释信息,内容关于本次提交的说明,方便自己或他人查看
git commit 提交git仓库 -m 后面接上注释信息,内容关于本次提交的说明,方便自己或他人查看
修改或删除原有文件
常规方法
git add *
git commit
git commit
简便方法
git commit -a -m "注释信息"
-a 表示直接提交
- 删除
# 删除文件
[[email protected] git_data]# rm 123 -f
[[email protected] git_data]# ls
[[email protected] git_data]# git status
# 位于分支 master
# 要提交的变更:
# (使用 "git reset HEAD <file>..." 撤出暂存区)
#
# 新文件: 123
#
# 尚未暂存以备提交的变更:
# (使用 "git add/rm <file>..." 更新要提交的内容)
# (使用 "git checkout -- <file>..." 丢弃工作区的改动)
#
# 删除: 123
#
[[email protected] git_data]# ls
[[email protected] git_data]# git status
# 位于分支 master
# 要提交的变更:
# (使用 "git reset HEAD <file>..." 撤出暂存区)
#
# 新文件: 123
#
# 尚未暂存以备提交的变更:
# (使用 "git add/rm <file>..." 更新要提交的内容)
# (使用 "git checkout -- <file>..." 丢弃工作区的改动)
#
# 删除: 123
#
- 查看历史记录
• git log #→查看提交历史记录
• git log -2 #→查看最近几条记录
• git log -p -1 #→-p显示每次提交的内容差异,例如仅查看最近一次差异
• git log --stat -2 #→--stat简要显示数据增改行数,这样能够看到提交中修改过的内容,对文件添加或移动的行数,并在最后列出所有增减行的概要信息
• git log --pretty=oneline #→--pretty根据不同的格式展示提交的历史信息
• git log --pretty=fuller -2 #→以更详细的模式输出提交的历史记录
• git log --pretty=fomat:"%h %cn" #→查看当前所有提交记录的简短SHA-1哈希字串与提交着的姓名。
- 还原历史版本
git reset --hard hash
git reset --hard HEAD^ #→还原历史提交版本上一次
git reset --hard 3de15d4 #→找到历史还原点的SHA-1值后,就可以还原(值不写全,系统
会自动匹配)
- 还原未来数据
git reflog #→查看未来历史更新点
- 对比数据
git diff可以对比当前文件与仓库已保存文件的区别,知道了对README作了什么修改
后,再把它提交到仓库就放?多了。
git diff README
- 分支切换
[[email protected] git_data]# git branch linux
[[email protected] git_data]# git branch
linux
* master
[[email protected] git_data]# git checkout linux
切换到分支 ‘linux‘
[[email protected] git_data]# git branch
* linux
master
[[email protected] git_data]# git branch
linux
* master
[[email protected] git_data]# git checkout linux
切换到分支 ‘linux‘
[[email protected] git_data]# git branch
* linux
master
在linux分支进行修改
[[email protected] git_data]# cat README
[[email protected] git_data]# echo "2017年11月30日" >> README
[[email protected] git_data]# git add .
[[email protected] git_data]# git commit -m "2017年11月30日09点10分"
[linux 5a6c037] 2017年11月30日09点10分
1 file changed, 1 insertion(+)
[[email protected] git_data]# git status
# 位于分支 linux
无文件要提交,干净的工作区
[[email protected] git_data]# echo "2017年11月30日" >> README
[[email protected] git_data]# git add .
[[email protected] git_data]# git commit -m "2017年11月30日09点10分"
[linux 5a6c037] 2017年11月30日09点10分
1 file changed, 1 insertion(+)
[[email protected] git_data]# git status
# 位于分支 linux
无文件要提交,干净的工作区
回到master分支
[[email protected] git_data]# git checkout master
切换到分支 ‘master‘
[[email protected] git_data]# cat README
[[email protected] git_data]# git log -1
commit 7015bc7b316cc95e2dfe6c53e06e3900b2edf427
Author: clsn <[email protected]>
Date: Wed Nov 29 19:30:57 2017 +0800
123
切换到分支 ‘master‘
[[email protected] git_data]# cat README
[[email protected] git_data]# git log -1
commit 7015bc7b316cc95e2dfe6c53e06e3900b2edf427
Author: clsn <[email protected]>
Date: Wed Nov 29 19:30:57 2017 +0800
123
合并代码
[[email protected] git_data]# git merge linux
更新 7015bc7..5a6c037
Fast-forward
README | 1 +
1 file changed, 1 insertion(+)
[[email protected] git_data]# git status
# 位于分支 master
无文件要提交,干净的工作区
[[email protected] git_data]# cat README
2017年11月30日
更新 7015bc7..5a6c037
Fast-forward
README | 1 +
1 file changed, 1 insertion(+)
[[email protected] git_data]# git status
# 位于分支 master
无文件要提交,干净的工作区
[[email protected] git_data]# cat README
2017年11月30日
- 删除分支
git branch -d 删除掉
- 部分代码
mkdir gitSparse
cd gitSparse
git init
git remote add -f origin [email protected]:XXX.git
git config core.sparsecheckout true
echo "some/sub-folder/you/want" >> .git/info/sparse-checkout
git checkout master
参考
以上是关于Git基本操作(Linux)的主要内容,如果未能解决你的问题,请参考以下文章