继续整理一下linux 下面使用命令行操作实例
首先创建文件目录 然后 执行 git clone 操作
[email protected]:~/桌面$ cd test/ [email protected]:~/桌面/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 0Unpacking objects: 100% (3/3), done.
下面是执行 git --help 操作
[email protected]:~/桌面/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 对象
测试新建一个文件然后上传
[email protected]:/home/timeless/桌面/test/TESTDEMO# vi demo [email protected]:/home/timeless/桌面/test/TESTDEMO# git add ./* [email protected]:/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 ‘[email protected](none)‘)
遇到错误,是没有运行git config --global user.email "[email protected]" 来表明我的身份。
运行 该语句便可。
[email protected]:/home/timeless/桌面/test/TESTDEMO# git config --global user.email "[email protected]" [email protected]:/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 推送
[email protected]:/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
[email protected]:~/桌面/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. 检查连接... 完成。 [email protected]:~/桌面/demo$ ls TESTDEMO
新的会话中修改文件
[email protected]:~/桌面/demo/TESTDEMO$ ls demo README.md[email protected]:~/桌面/demo/TESTDEMO$ vi demo [email protected]:~/桌面/demo/TESTDEMO$ git add .[email protected]:~/桌面/demo/TESTDEMO$ git commit -a -m "第二次测试"[master 6b98505] 第二次测试 1 file changed, 1 insertion(+), 1 deletion(-)[email protected]:~/桌面/demo/TESTDEMO$ git push
github 异常处理:
[email protected]:/home/timeless/桌面/test/TESTDEMO# vi demo //修改本地文件 同时提交 [email protected]:/home/timeless/桌面/test/TESTDEMO# git add . [email protected]:/home/timeless/桌面/test/TESTDEMO# git commit -a -m "赵兴壮测试冲突异常" //提交文件发现问题 [master d948414] 赵兴壮测试冲突异常 1 file changed, 1 insertion(+), 1 deletion(-) [email protected]:/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‘ 小节。 [email protected]:/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 自动合并失败,修正冲突然后提交修正的结果。 [email protected]:/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 [email protected]:/home/timeless/桌面/test/TESTDEMO# vi demo //修改文件处理完 版本之后 [email protected]:/home/timeless/桌面/test/TESTDEMO# git add . [email protected]:/home/timeless/桌面/test/TESTDEMO# git commit -a -m "处理冲突之后" [master f7a190d] 处理冲突之后 [email protected]:/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。
时间: 2024-10-03 14:02:29