git 学习笔记
来源:互联网 发布:王者荣耀修复资源数据 编辑:程序博客网 时间:2024/06/15 10:48
git 学习笔记
最近从 svn 转到 git。这两个版本控制系统区别蛮大的,还是有点不适用。做个笔记,记录 git 的各种常用操作。算是给自己做个备忘。
git 使用前的配置
首先要设置自己的用户名和邮箱名。
git config --global user.name "your name" git config --global user.email "your email address"
然后最好再设置一下提交 comment 时用的文本编辑器。(默认是 vi)
git config --global core.editor "notepad++.exe" # 我习惯用 notepad++ , 大家可以根据自己的习惯设置合适的编辑器。
让 git 输出的文字显示不同的颜色。
git config --global color.status auto git config --global color.diff auto git config --global color.branch auto git config --global color.interactive auto
查看各种配置情况:
git config --list
生成 ssh 公钥
这项操作其实和 git 无关,属于是 ssh 的配置了。不过 git 会用到 ssh 来传输数据。所以还是需要配置一下。
ssh-keygen -t rsa -C “您的邮箱地址” cd ~/.ssh # 这时会生成这个目录,公钥就放在这个目录里。 ls # 这时会看到 这两个文件:id_rsa id_rsa.pub,id_rsa.pub 就是公钥
生成一个代码仓库
生成一个代码仓库有两种方式,自己建一个或者从远程仓库中克隆一个。
git init # 在当前目录中生成一个代码仓库 git clone url # 克隆一个代码仓库到本地 git clone url path # 克隆一个代码仓库到本地,放在 path 目录中。
文件操作
git add path # 添加文件或目录到代码仓库 git rm path # 从代码仓库和工作目录中删除文件或目录 git rm --cached path # 从代码仓库删除文件或目录,本地还保留 git mv path destination # 文件改名 git checkout [rev] file # 签出某一个版本的文件。如果不加 rev 则签出最新的。
working tree 相关的操作
git status # 显示当前工作目录的状态 git add path # 将文件暂存 git commit # 将暂存的文件提交到版本库中。 git commit -a # 将所有修改后的文件都提交到版本库中。 git commit --amend # 撤销最近一次提交操作。 git reset HEAD <file> # 撤销对 file 的暂存。 git checkout -- <file> # 将 file 恢复到版本库中的样子。(丢弃对 file 的修改) git checkout -- # 将所有文件恢复到版本库中的样子。 git clean # 将工作目录中非版本控制的文件删除
比较文件的差异
git diff # 当前文件和暂存区域快照之间的差异。 git diff --cached # 暂存起来的文件和上次提交时的快照之间的差异。 git diff --staged # 暂存起来的文件和上次提交时的快照之间的差异,与 git diff --cached 相同。
忽略某些文件
有些文件无需纳入 Git 的管理,也不希望它们总出现在未跟踪文件列表。我们可以创建一个名为 .gitignore 的文件,列出要忽略的文件模式。下面是一个 .gitignore 的例子。
# 忽略所有 .a 结尾的文件 *.a # 但 lib.a 除外 !lib.a # 仅仅忽略项目根目录下的 TODO 文件,不包括 subdir/TODO /TODO # 忽略 build/ 目录下的所有文件 build/ # 会忽略 doc/notes.txt 但不包括 doc/server/arch.txt doc/*.txt
本地分支
git branch branch_name # 建立一个名为 branch_name 的分支 git checkout branch_name # 将工作目录切换到 branch_name 分支的最新版 git checkout -b branch_name # 新建一个名为 branch_name 的分支,并将工作目录切换到 branch_name 分支(HEAD 指向 branch) git branch -d branch_name # 删除分支 branch_name git branch -D branch_name # 强制删除分支 branch_name git branch # 显示所有本地的分支 git branch -v # 查看各分支最近一次提交对象的信息 git branch --merge # 查看那些分支是当前分支的直接上游 git branch --no-merged # 查看那些分支尚未尚未合并到当前分支 git branch -f branch rev # 用 rev 覆盖当前分支 git merge branch_name # 合并分支,将 branch_name 和当前分支合并
远程仓库的操作
git clone url # 克隆一个代码仓库到本地 git clone url path # 克隆一个代码仓库到本地,放在 path 目录中。 git remote -v # 显示远程仓库的信息 git remote add [shortname] [url] # 添加一个新的远程仓库,并给远程仓库指定一个 shortname git fetch [remote-name]# 从远程仓库抓取数据到本地. git pull [remote-name] # 从远程仓库抓取数据到本地,然后将远端分支自动合并到本地仓库中当前分支。 git push repository_name local_branch_name: remote_branch_name # 将本地的分支 local_branch_name 推送到远程仓库,成为名为 remote_branch_name 的远程分支 git push repository_name local_branch_name # 将本地的分支 local_branch_name 推送到远程仓库,建立一个同名的分支 git merge repository_name/remote_branch_name # 将远程分支 remote_branch_name 合并到本地的当前分支上。 git checkout -b local_branch_name repository_name/remote_branch_name # 建立一个本地分支 local_branch_name,与远程分支 remote_branch_name 关联。 git checkout --track repository_name/remote_branch_name # 建立一个同名的本地分支 remote_branch_name,与远程分支 remote_branch_name 关联。 git push repository_name :remote_branch_name # 删除远程分支 remote_branch_name git remote show [remote-name] # 查看远程仓库 remote-name 的详细信息 git remote rename oldname newname# 将远程仓库 oldname 改名为 newname git remote rm name # 删除与远程仓库 name 的关联
打标签
git tag # 列显已有的标签 git tag name [revision] # 给 revision 打一个轻量级标签。 git tag -a name [revision] -m "your comment" # 给 revision 打一个含附注的标签。 git tag -s name [revision] -m "your comment" # 给 revision 打一个含附注的标签,并用用 GPG 来签署标签。 git push origin [tagname] # 分享标签到远端仓库 git push origin --tags # 推送所有本地新增的标签到远端仓库
Git 命令别名
git 支持我们给命令起个别名。下面是一些例子。
git config --global alias.co checkout git config --global alias.br branch git config --global alias.ci commit git config --global alias.st status git config --global alias.unstage 'reset HEAD --' git config --global alias.last 'log -1 HEAD' git config --global alias.visual '!gitk'
1 0
- 【git】git学习笔记
- Git学习笔记-Git Branching
- Git学习笔记:Git命令
- git常用命令-Git学习笔记
- Git学习笔记--Git入门
- Git 学习笔记 --- 自定义Git
- git/github学习笔记
- git 学习笔记
- Git 学习笔记
- git学习笔记
- git 学习笔记
- Git学习笔记 - 1
- Git学习笔记
- Git学习笔记 - 1
- git/github学习笔记
- git学习笔记
- Git 学习笔记
- GIT之学习笔记
- Android集成百度地图步骤简述
- dubbo 使用 学习四(springmvc+spring+dubbo+zookeeper本地伪集群)
- Java nginx https 双向认证
- [SSM]Mybatis绑定错误的原因
- Thrift优缺点及应用
- git 学习笔记
- Objective-C App开发基础之pod install无限阻塞在Setting up CocoaPods master repo的情况
- 大型网站技术架构整理(Ch. 10-16)
- 打电话发短信
- oracle Window_group理解
- 面试题:交换两个变量的值,不使用第三个变量
- 值的互联网公司的开发工程师收藏的含有技术类高质量文章的微信公众号
- Gallery:android:galleryItemBackground 什么效果
- CodeForces 723B Text Document Analysis(字符串的分析)