目录
1 git 的作用
2 查看git版本
3 git 代码的管理流程
4 常用命令集合
5 远程分支操作
6.生成补丁和打入补丁
1 git 的作用
Git - Downloads
2 查看git版本
(1)git version(查看git 版本信息)
(2)源代码共享
https://gitee.com/komavideo/LearGit
cat .git/config(查看一些git配置信息,包含远程仓库地址)
3 git 代码的管理流程
代码开发流程
基础概念:
Local:本地库
Remote:远程库(服务器端)
Git初始设定
git init 建立一个库
git config -l查看一下当前用户配置
git config --global user.name “zhangd” (用户名)
git config --global user.email “1911667918@qq.com” (用户邮箱)
Git config --global color.ui true
Git config --global color.ui true //编辑器的颜色为true
4 常用命令集合
git checkout -b feat_zhongd master 创建一个新分支并切换到新分支(以本地分支master分支为标准,创建新分支feat_zhongd,并切换到feat_zhongd分支)
git branch 查看分支状态(查看本地分支)
git branch -a 详细查看分支(包括本地分支,远程分支)
git branch -d feat_zhangd 删除一个分支(git branch -D feat_zhangd)也可以
git checkout teat_zdong 切换到账号分支
Git checkout . (释放文件,将所有文件恢复原状)
git checkout -- *.c 将文件恢复到原状(将所有以 .c结尾的文件恢复原状)
git status 查看当前状态
git stash save 暂存
git branch -m logo_poweroff logo_poweroffpicturesound 分支重命名
git log 查看当前分支提交信息
git ls-files 命令是用来查看暂存区中文件信息。
git reset --hard 5ef14f800c3325391ed33d945093a9d4c54501fd 回退到某个版本
git merge dev 在master分支上将dev分支合并到master
git diff --cached 索引区比较
git commit --amend 更新最后的提交
git commit -am “commit message “提交信息并增加信息
tig 查看当前分支修改
tig --all 查看所有分支修改
git show d2a3bf4ab8df79a269ee2867a45aeadff6e51d4a --stat 可以查看修改了那些文件
git stash # 暂存本地的修改
git fetch --all # 拉取项目更新
git pull # 下载覆盖
git stash pop # 释放本地修改
帮助命令:
Git config --help
Git help commit 提交
Git help branch 分支
Git log --oneline 一行显示
Git log -p 详细显示
5 远程分支操作
(1)创建一个本地仓库
git remote set-url origin "https://..."
git config remote.origin.url "https://..."
删除本地仓库:git remote rm origin
(1)git remote 不带参数,列出已经存在的远程分支
$ git remote
origin
(2)git remote -v | --verbose 列出详细信息,在每一个名字后面列出其远程url
此时, -v 选项(译注:此为 –verbose 的简写,取首字母),显示对应的克隆地址:
$ git remote -v
origin git://github.com/schacon/ticgit.git如果有多个远程仓库,此命令将全部列出.比如在我的 Grit 项目中,可以看到:
$ cd grit
$ git remote -v
bakkdoor git://github.com/bakkdoor/grit.git
cho45 git://github.com/cho45/grit.git
defunkt git://github.com/defunkt/grit.git
koke git://github.com/koke/grit.git
origin 这样一来,我就可以非常轻松地从这些用户的仓库中,拉取他们的提交到本地.请注意,上面列出的地址只有 origin 用的是 SSH URL 链接,所以也只有这个仓库我能推送数据上去(我们会在第四章解释原因).
添加远程仓库
git push origin master -f
要添加一个新的远程仓库,可以指定一个简单的名字,以便将来引用,运行 git remote add [shortname] [url]:
$ git remote
origin
$ git remote add pb git://github.com/paulboone/ticgit.git
$ git remote -v
origin git://github.com/schacon/ticgit.git
pb git://github.com/paulboone/ticgit.git现在可以用字串 pb 指代对应的仓库地址了.比如说,要抓取所有 Paul 有的,但本地仓库没有的信息,可以运行 git fetch pb:
git diff 对比差异
git status 查看状态
git add . (添加要提交的文件修改)
git commit -m "提交原因”
提交到远程子库:git push origin HEAD:refs/heads/28_screen_kernel
git push origin releas:related (push到远程分支,和本地关联)
git push origin :related(删除远程分支)
git branch -m zhangd_master dev_zhangd 分支重命名
git push origin -d/--delete +name(远程分支名) 本地删除远程分支名
git branch -r -D origin/+远程分支名 (本地删除远程分支名) eg : git branch -r -D origin/zhangd 删除远程分支zhangd 的分支 命名。
6.生成补丁和打入补丁
(1):生成补丁
提出补丁:
git format-patch -M master //当前分支所有超前master的提交
git format-patch -s SHA值 //此SHA值提交以后的所有PATCH(SHA值即为commit id)
git format-patch -1 SHA值 //此SHA值的提交patch(SHA值即为commit id)
git format-patch -n //从master售前n个提交的内容
git format-patch -n SHA值 //从SHA值开始(含SHA值当次)之前的N次提交
(2)打入补丁
应用patch 和 diff
相关命令行
检查patch/diff是否能正常打入:
git apply --check 【path/to/xxx.patch】
git apply --check 【path/to/xxx.diff】
打入patch/diff:
git apply 【path/to/xxx.patch】
git apply 【path/to/xxx.diff】
patch -p1 -i 文件名.patch
或者
git am 【path/to/xxx.patch】
git pull origin master
可以添加git am -s --ignore-whitespace +SHA值 忽略空格的代码打补丁
git-am --abort 将之前未提交的放弃修改
git-am ./patch_fix/*.patch //批量打patch_fix目录下的所有补丁