github linux 命令行操作实例
继续整理一下linux 下面使用命令行操作实例
首先创建文件目录 然后 执行 git clone 操作
timeless@timeless-HP-Pavilion-g4-Notebook-PC:~/桌面$ cd test/
timeless@timeless-HP-Pavilion-g4-Notebook-PC:~/桌面/test$ git clone https://github.com/timelessz/TESTDEMO.git
正克隆到 ‘TESTDEMO‘...
remote: Counting objects: 3, done.
remote: Total 3 (delta 0), reused 0 (delta 0), pack-reused 0
Unpacking objects: 100% (3/3), done.
下面是执行 git --help 操作
timeless@timeless-HP-Pavilion-g4-Notebook-PC:~/桌面/test$ git --help
用法:git [--version] [--help] [-C <path>] [-c name=value]
[--exec-path[=<path>]] [--html-path] [--man-path] [--info-path]
[-p|--paginate|--no-pager] [--no-replace-objects] [--bare]
[--git-dir=<path>] [--work-tree=<path>] [--namespace=<name>]
<command> [<args>]
最常用的 git 命令有:
add 添加文件内容至索引
bisect 通过二分查找定位引入 bug 的变更
branch 列出、创建或删除分支
checkout 检出一个分支或路径到工作区
clone 克隆一个版本库到一个新目录
commit 记录变更到版本库
diff 显示提交之间、提交和工作区之间等的差异
fetch 从另外一个版本库下载对象和引用
grep 输出和模式匹配的行
init 创建一个空的 Git 版本库或重新初始化一个已存在的版本库
log 显示提交日志
merge 合并两个或更多开发历史
mv 移动或重命名一个文件、目录或符号链接
pull 获取并整合另外的版本库或一个本地分支
push 更新远程引用和相关的对象
rebase 本地提交转移至更新后的上游分支中
reset 重置当前HEAD到指定状态
rm 从工作区和索引中删除文件
show 显示各种类型的对象
status 显示工作区状态
tag 创建、列出、删除或校验一个GPG签名的 tag 对象
测试新建一个文件然后上传
root@timeless-HP-Pavilion-g4-Notebook-PC:/home/timeless/桌面/test/TESTDEMO# vi demo
root@timeless-HP-Pavilion-g4-Notebook-PC:/home/timeless/桌面/test/TESTDEMO# git add ./*
root@timeless-HP-Pavilion-g4-Notebook-PC:/home/timeless/桌面/test/TESTDEMO# git commit
*** Please tell me who you are.
Run
git config --global user.email "[email protected]"
git config --global user.name "Your Name"
to set your account‘s default identity.
Omit --global to set the identity only in this repository.
fatal: unable to auto-detect email address (got ‘root@timeless-HP-Pavilion-g4-Notebook-PC.(none)‘)
遇到错误,是没有运行git config --global user.email "[email protected]" 来表明我的身份。
运行 该语句便可。
root@timeless-HP-Pavilion-g4-Notebook-PC:/home/timeless/桌面/test/TESTDEMO# git config --global user.email "[email protected]"
root@timeless-HP-Pavilion-g4-Notebook-PC:/home/timeless/桌面/test/TESTDEMO# git commit -a -m 第一次提交
git commit 操作参数:
用法:git commit [选项] [--] <路径规则>...
-q, --quiet 提交成功后不显示概述信息
-v, --verbose 在提交说明模板里显示差异
提交说明选项
-F, --file <文件> 从文件中读取提交说明
--author <作者> 提交时覆盖作者
--date <日期> 提交时覆盖日期
-m, --message <说明> 提交说明
-c, --reedit-message <提交>
重用并编辑指定提交的提交说明
-C, --reuse-message <提交>
重用指定提交的提交说明
--fixup <提交> 使用 autosquash 格式的提交说明用以修正指定的提交
--squash <提交> 使用 autosquash 格式的提交说明用以压缩至指定的提交
--reset-author 现在将该提交的作者改为我(和 -C/-c/--amend 参数共用)
-s, --signoff 添加 Signed-off-by: 签名
-t, --template <文件>
使用指定的模板文件
-e, --edit 强制编辑提交
--cleanup <default> 设置如何删除提交说明里的空格和#注释
--status 在提交说明模板里包含状态信息
-S, --gpg-sign[=<key id>]
GPG 提交签名
提交内容选项
-a, --all 提交所有改动的文件
-i, --include 添加指定的文件到索引区等待提交
--interactive 交互式添加文件
-p, --patch 交互式添加变更
-o, --only 只提交指定的文件
-n, --no-verify 绕过 pre-commit 钩子
--dry-run 显示将要提交的内容
--short 以简洁的格式显示状态
--branch 显示分支信息
--porcelain 机器可读的输出
--long 以长格式显示状态(默认)
-z, --null 条目以NUL字符结尾
--amend 修改先前的提交
--no-post-rewrite 绕过 post-rewrite 钩子
-u, --untracked-files[=<模式>]
显示未跟踪的文件,“模式”的可选参数:all、normal、no。(默认:all)
执行git push 推送
root@timeless-HP-Pavilion-g4-Notebook-PC:/home/timeless/桌面/test/TESTDEMO# git push
Username for ‘https://github.com‘: timelessz
Password for ‘https://[email protected]‘:
Counting objects: 4, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (2/2), done.
Writing objects: 100% (3/3), 305 bytes | 0 bytes/s, done.
Total 3 (delta 0), reused 0 (delta 0)
To https://github.com/timelessz/TESTDEMO.git
a01a7c2..b15b255 master -> master
异常信息处理
实例 新开一个linux 命令行实例
新建文件夹 执行 git clone 文件 url
timeless@timeless-HP-Pavilion-g4-Notebook-PC:~/桌面/demo$ git clone https://github.com/timelessz/TESTDEMO.git
正克隆到 ‘TESTDEMO‘...
remote: Counting objects: 6, done.
remote: Compressing objects: 100% (3/3), done.
remote: Total 6 (delta 0), reused 3 (delta 0), pack-reused 0
Unpacking objects: 100% (6/6), done.
检查连接... 完成。
timeless@timeless-HP-Pavilion-g4-Notebook-PC:~/桌面/demo$ ls
TESTDEMO
新的会话中修改文件
timeless@timeless-HP-Pavilion-g4-Notebook-PC:~/桌面/demo/TESTDEMO$ ls
demo README.md
timeless@timeless-HP-Pavilion-g4-Notebook-PC:~/桌面/demo/TESTDEMO$ vi demo
timeless@timeless-HP-Pavilion-g4-Notebook-PC:~/桌面/demo/TESTDEMO$ git add .
timeless@timeless-HP-Pavilion-g4-Notebook-PC:~/桌面/demo/TESTDEMO$ git commit -a -m "第二次测试"
[master 6b98505] 第二次测试
1 file changed, 1 insertion(+), 1 deletion(-)
timeless@timeless-HP-Pavilion-g4-Notebook-PC:~/桌面/demo/TESTDEMO$ git push
github 异常处理:
root@timeless-HP-Pavilion-g4-Notebook-PC:/home/timeless/桌面/test/TESTDEMO# vi demo //修改本地文件 同时提交
root@timeless-HP-Pavilion-g4-Notebook-PC:/home/timeless/桌面/test/TESTDEMO# git add .
root@timeless-HP-Pavilion-g4-Notebook-PC:/home/timeless/桌面/test/TESTDEMO# git commit -a -m "赵兴壮测试冲突异常" //提交文件发现问题
[master d948414] 赵兴壮测试冲突异常
1 file changed, 1 insertion(+), 1 deletion(-)
root@timeless-HP-Pavilion-g4-Notebook-PC:/home/timeless/桌面/test/TESTDEMO# git push
Username for ‘https://github.com‘: timelessz
Password for ‘https://[email protected]‘:
To https://github.com/timelessz/TESTDEMO.git
! [rejected] master -> master (fetch first)
error: 无法推送一些引用到 ‘https://github.com/timelessz/TESTDEMO.git‘ //版本异常
提示:更新被拒绝,因为远程版本库包含您本地尚不存在的提交。这通常是因为另外
提示:一个版本库已向该引用进行了推送。再次推送前,您可能需要先整合远程变更
提示:(如 ‘git pull ...‘)。
提示:详见 ‘git push --help‘ 中的 ‘Note about fast-forwards‘ 小节。
root@timeless-HP-Pavilion-g4-Notebook-PC:/home/timeless/桌面/test/TESTDEMO# git pull //首先pull 下来解决问题
remote: Counting objects: 3, done.
remote: Compressing objects: 100% (2/2), done.
remote: Total 3 (delta 0), reused 3 (delta 0), pack-reused 0
Unpacking objects: 100% (3/3), done.
来自 https://github.com/timelessz/TESTDEMO
b15b255..6b98505 master -> origin/master
自动合并 demo
冲突(内容):合并冲突于 demo
自动合并失败,修正冲突然后提交修正的结果。
root@timeless-HP-Pavilion-g4-Notebook-PC:/home/timeless/桌面/test/TESTDEMO# git diff
diff --cc demo
index 8677aea,fc19e2b..0000000
--- a/demo
+++ b/demo
@@@ -1,1 -1,1 +1,5 @@@
++<<<<<<< HEAD
+赵兴壮测试实现 异常的版本
++=======
+ 赵兴壮测试实现 我不喜欢文件
++>>>>>>> 6b98505ba81551d18ad01e82f59dc7ae3e6f1d5e
root@timeless-HP-Pavilion-g4-Notebook-PC:/home/timeless/桌面/test/TESTDEMO# vi demo //修改文件处理完 版本之后
root@timeless-HP-Pavilion-g4-Notebook-PC:/home/timeless/桌面/test/TESTDEMO# git add .
root@timeless-HP-Pavilion-g4-Notebook-PC:/home/timeless/桌面/test/TESTDEMO# git commit -a -m "处理冲突之后"
[master f7a190d] 处理冲突之后
root@timeless-HP-Pavilion-g4-Notebook-PC:/home/timeless/桌面/test/TESTDEMO# git push
Username for ‘https://github.com‘: timelessz
Password for ‘https://[email protected]‘:
Counting objects: 8, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (3/3), done.
Writing objects: 100% (4/4), 534 bytes | 0 bytes/s, done.
Total 4 (delta 0), reused 0 (delta 0)
To https://github.com/timelessz/TESTDEMO.git
6b98505..f7a190d master -> master
异常处理完成。
论坛收集别人对于使用github经验:
- 多用工具,少用命令行,除非迫不得已使用linux服务器。
- 提交前首先diff 代码一下,一面出现错误。
- 下班回家之前整理好自己的工作区,第二天上班节省时间,防止代码混乱。
- 并行的项目,比如好多模块需要一块开发,使用分支开发,有效减少项目风险。
- push 时候遇到冲突,弄明白冲突的原因,不要求起别人代码。
- 产品发布之后记得打bug,方便将来拉分支修改bug。
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。