代码管理工具 Git
2017-01-11 20:12
453 查看
以下是自己总结的git 使用,有些先人写得不错,就直接贴链接了,后续会陆续补充;
〇、一种很好地分支管理方法:
http://www.ruanyifeng.com/blog/2012/07/git.html
1、申请账号,登录web git,填写注册邮箱等信息;等待管理员通过;
2、安装git客户端(如windows下的git bash),上传公钥:执行 ssh-keygen.exe生成 .ssh/id_rsa.pub,将内容拷贝到web git的SSH Public Keys;
3、配置
3.1 本地用户名和邮箱:git config --global user.name gitname, git config --global user.mail gitname@example.com
3.2 默认编辑器 git config --global core.editor "vim" 或者 export GIT_EDITOR=vim
3.3 保存密码,以避免每次输入:git config --global credential.helper store
3.4 高亮git config --global color.ui true
3.5 配置文件位置及其作用域http://www.cnblogs.com/wanqieddy/archive/2012/08/03/2621027.html
3.6 .gitignore 提交时忽略的文件列表
4、克隆代码:git clone
git@git.internal.company.com:project.git ,clone的地址从git的web页面获取;
clone子模块:git submodule --recursive --init git submodule update [path]
5、代码操作:
5.1 分支操作
在远端qa分支基础上创建分支:git checkout -b dev.test origin/qa,若无法创建分支,可能是没有权限
基于当前所在分支,创建分支:git branch name
创建+切换分支:git checkout –b name
合并某分支到当前分支:git merge name
删除本地分支:git branch –D name
删除github分支:git push origin --delete dev.test
切换分支:git checkout tagname
本地分支回退
版本表示:HEAD 表示当前版本;HEAD^上个版本;HEAD^上上个版本;HEAD~100之前的第100个版本;
查看历史命令,以便确定跳跃到未来哪个版本:git reflog
本地所有修改的,没有的提交的,都返回到原来的状态:git checkout
返回到某个节点,不保留修改:git reset --hard commit_id
返回到某个节点,保留修改:git reset --soft commit_id
把所有没有提交的修改暂存到stash里面,可用git stash pop恢复:git stash
修改了某文件,但是尚未 add,取消修改:git checkout -- README.md,若已经add,则 git reset HEAD -- README.md取消暂存的文件名,然后执行上一条命令取消修改
删除某个已经push的commit:1、rebase(drop) 或者 2、http://blog.csdn.net/molaifeng/article/details/52671810
//fetch的使用方法:git fetch gerrit refs/changes/39/1739/1
5.2手动解决冲突:
生成patch:git diff
修改patch文件:patch文件中的 <<<<<<<<和>>>>>>>指出了冲突,对比两个冲突,将他们修改成你期望的那个,删掉<<<<<和>>>>>;
尝试 git apply直到没有冲突
5.3 tag操作:
创建tag:git tag -a "tag name" -m "tag description"
推送所有本地tag:git push origin --tag
推送指定tag,若tag和分支名字相同,则推送的是分支:git push origin [tag name]
删除远程tag:git push origin --delete tag tag-name
6、获取最新短commit号git rev-parse --short HEAD
git describe 显示离当前提交最近的tag,如果符合条件的tag,即最新的tag,指向最新提交,则只显示tag名字,否则显示后缀以描述该tag,后缀格式 从大tag到现在的commit个数 + 最新的commit id,如
0.11.0-3-g2985355 表示从tag 0.11.0 到最新的commit有3次提交,最新commit id 前7位是
2985355, g表示git
git describe --tag [<commit-ish>] 从指定commit中找到找到最近的tag
--dirty[=<mark>]描述工作树,如果工作树是dirty就将[mark](-ditry默认值)附在描述之后
7、日志操作:
查看某个修改是谁提交的:git blame file_path | grep "key words"
查看commit信息:git show 7c95a0f6ede86d7fdf964bfa8963c4961472dba9
查看某人的提交日志:git log --author=username
查看某人的修改: git log --oneline --since 2016-05-30 --author=username
git show --stat branchname
查看某个commit日志及对应修改了哪些文件 git log -2 --stat
最近一次提交的细节: git log -1 -p
查看文件修改历史git log -p <filename>
8、比较不同:
git diff commit:filename commit2:filename #查看某一个文件不同版本的差异;
git diff --name-status HEAD~2 HEAD~3文件列表
9、rebase与merge区别 http://blog.csdn.net/wh_19910525/article/details/7554489
10、git库迁移:
更新git remote:git remote set-url origingit@newgit.op.ksyun.com:ebs/kdfs.git
将本地分支重新推送到origin,例如 git push origin dev.test
11、git error:
$ git pull
Updating e2d796f..cffa116
Unlink of file 'path/file.c' failed. Should I try again? (y/n)
文件正在被其他应用使用,关掉即可
http://blog.csdn.net/wei_gw2012/article/details/54347504
〇、一种很好地分支管理方法:
http://www.ruanyifeng.com/blog/2012/07/git.html
1、申请账号,登录web git,填写注册邮箱等信息;等待管理员通过;
2、安装git客户端(如windows下的git bash),上传公钥:执行 ssh-keygen.exe生成 .ssh/id_rsa.pub,将内容拷贝到web git的SSH Public Keys;
3、配置
3.1 本地用户名和邮箱:git config --global user.name gitname, git config --global user.mail gitname@example.com
3.2 默认编辑器 git config --global core.editor "vim" 或者 export GIT_EDITOR=vim
3.3 保存密码,以避免每次输入:git config --global credential.helper store
3.4 高亮git config --global color.ui true
3.5 配置文件位置及其作用域http://www.cnblogs.com/wanqieddy/archive/2012/08/03/2621027.html
3.6 .gitignore 提交时忽略的文件列表
4、克隆代码:git clone
git@git.internal.company.com:project.git ,clone的地址从git的web页面获取;
clone子模块:git submodule --recursive --init git submodule update [path]
5、代码操作:
5.1 分支操作
在远端qa分支基础上创建分支:git checkout -b dev.test origin/qa,若无法创建分支,可能是没有权限
基于当前所在分支,创建分支:git branch name
创建+切换分支:git checkout –b name
合并某分支到当前分支:git merge name
删除本地分支:git branch –D name
删除github分支:git push origin --delete dev.test
切换分支:git checkout tagname
本地分支回退
版本表示:HEAD 表示当前版本;HEAD^上个版本;HEAD^上上个版本;HEAD~100之前的第100个版本;
查看历史命令,以便确定跳跃到未来哪个版本:git reflog
本地所有修改的,没有的提交的,都返回到原来的状态:git checkout
返回到某个节点,不保留修改:git reset --hard commit_id
返回到某个节点,保留修改:git reset --soft commit_id
把所有没有提交的修改暂存到stash里面,可用git stash pop恢复:git stash
修改了某文件,但是尚未 add,取消修改:git checkout -- README.md,若已经add,则 git reset HEAD -- README.md取消暂存的文件名,然后执行上一条命令取消修改
删除某个已经push的commit:1、rebase(drop) 或者 2、http://blog.csdn.net/molaifeng/article/details/52671810
//fetch的使用方法:git fetch gerrit refs/changes/39/1739/1
5.2手动解决冲突:
生成patch:git diff
修改patch文件:patch文件中的 <<<<<<<<和>>>>>>>指出了冲突,对比两个冲突,将他们修改成你期望的那个,删掉<<<<<和>>>>>;
尝试 git apply直到没有冲突
5.3 tag操作:
创建tag:git tag -a "tag name" -m "tag description"
推送所有本地tag:git push origin --tag
推送指定tag,若tag和分支名字相同,则推送的是分支:git push origin [tag name]
删除远程tag:git push origin --delete tag tag-name
6、获取最新短commit号git rev-parse --short HEAD
git describe 显示离当前提交最近的tag,如果符合条件的tag,即最新的tag,指向最新提交,则只显示tag名字,否则显示后缀以描述该tag,后缀格式 从大tag到现在的commit个数 + 最新的commit id,如
0.11.0-3-g2985355 表示从tag 0.11.0 到最新的commit有3次提交,最新commit id 前7位是
2985355, g表示git
git describe --tag [<commit-ish>] 从指定commit中找到找到最近的tag
--dirty[=<mark>]描述工作树,如果工作树是dirty就将[mark](-ditry默认值)附在描述之后
7、日志操作:
查看某个修改是谁提交的:git blame file_path | grep "key words"
查看commit信息:git show 7c95a0f6ede86d7fdf964bfa8963c4961472dba9
查看某人的提交日志:git log --author=username
查看某人的修改: git log --oneline --since 2016-05-30 --author=username
git show --stat branchname
查看某个commit日志及对应修改了哪些文件 git log -2 --stat
最近一次提交的细节: git log -1 -p
查看文件修改历史git log -p <filename>
8、比较不同:
git diff commit:filename commit2:filename #查看某一个文件不同版本的差异;
git diff --name-status HEAD~2 HEAD~3文件列表
9、rebase与merge区别 http://blog.csdn.net/wh_19910525/article/details/7554489
10、git库迁移:
更新git remote:git remote set-url origingit@newgit.op.ksyun.com:ebs/kdfs.git
将本地分支重新推送到origin,例如 git push origin dev.test
11、git error:
$ git pull
Updating e2d796f..cffa116
Unlink of file 'path/file.c' failed. Should I try again? (y/n)
文件正在被其他应用使用,关掉即可
http://blog.csdn.net/wei_gw2012/article/details/54347504
相关文章推荐
- 分布式代码管理工具git(1)
- 对于如何在编码过程中,我们如何管理代码的问题,下面是针对代码管理工具git的安装和使用
- 代码管理工具-git
- 代码管理工具git的使用
- 通过代码管理工具 git 完成一次完整的代码管理过程
- 代码管理工具git
- Python接口测试第一讲(代码管理工具git的简单操作)
- 代码管理工具-git
- Git代码管理工具
- GIT - 代码管理工具之命令集
- [Git]代码管理工具简单使用
- git.oschina免费的、分布式代码管理工具
- Windows上的代码管理工具git分享
- GIT代码管理工具安装以及基本操作
- 开始使用Git工具进行代码管理--记在CSDN空间提交项目的开始
- 进阶篇第一期:代码管理工具git之SourceTree
- 项目代码管理工具Git的总结
- GIT 代码管理工具 SourceTree
- git管理代码报错(使用Sourcetree工具) 有子模块Submodule(未解决)
- 我为什么推荐你使用 Android Studio 的 Git 工具去管理你的代码