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 "you@example.com"
  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 "you@example.com"   来表明我的身份。

运行  该语句便可。

root@timeless-HP-Pavilion-g4-Notebook-PC:/home/timeless/桌面/test/TESTDEMO# git config --global user.email "834916321@qq.com"
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://timelessz@github.com': 
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://timelessz@github.com': 
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://timelessz@github.com': 
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。

 

posted @ 2015-03-29 20:24  timelesszhuang  阅读(946)  评论(0编辑  收藏  举报