git概述

Posted by 秦宇 on February 4, 2017

目录[+]

Top

1安装与配置

git for Windows

Windows上的一个git bash实现 https://git-for-windows.github.io/

Tortoisegit

图形化的git管理工具,依赖于git bash https://tortoisegit.org/download/

配置git提交的用户名和密码 git config –global user.name zhangsan git config –global user.email zhangsan@qq.com git config –list查看git配置信息,–global是全局配置

生成ssh key

Ssh key是为ssh方式连接授权的,当然也可以用http方式连接,这样每次在非开放下载和上传的仓库进行操作时,都会提示输入账号和密码进行单词操作授权。 ssh-keygen -t rsa -C " zhangsan@qq.com" 连续按三次回车,这里设置的密码就为空了,并且创建了key,目标目录是~/.ssh/。 将~/.ssh/id_rsa.pub里的内容填写到中心仓库的ssh keys里进行授权,以后代码上传和下载都不需要输入账号和密码授权了。

忽略列表配置

以斜杠"/"开头表示目录; 以星号"*"通配多个字符; 以问号"?"通配单个字符; 以方括号"[]"包含单个字符的匹配列表; 以叹号"!"表示不忽略(跟踪)匹配到的文件或目录; .gitignore /build *.im !root.im

2原理介绍

git是分布式版本管理工具,每个终端同时也是服务端。这点在本质上不同于svn。 被git版本管理的目录下,有个.git文件夹,这是git的版本控制信息和仓库配置信息。

3命令介绍

3.1帮助命令

git help #git命令帮助信息 _ git help -a #git命令帮助信息完整版_ _ git help status #git status命令帮助信息_

3.2创建版本库

git init #初始化本地版本库 git clone url #克隆远程版本库

3.3修改和提交

git add

git add a.txt #添加一个文件到index

_ git add . #添加当前目录到index_

_ git add –all #添加所有文件到index_

git commit #提交修改到本地仓库

_ git commit -m “comment” #提交修改到本地仓库,同时加入提交日志_

_ git commit –amend -m “comment” #将修改合并到最近一次提交_

git status

git diff #对比workspace与index

_ git diff HEAD #对比workspace与index_

_ git difftool #以图形化方式展示对比_

git rm

git mv

git log

_ git log -3 #显示最近3条提交日志_

_ git log 1.txt #查看基于1.txt文件的修改提交记录_

_ git lg #git log的一个带参命令别名,可以看到当前分支的分支关系和提交记录_

git whatchanged #显示修改记录里修改了哪些文件

git whatchanged -1 #显示最近1次修改文件

git show #查看最近一次提交内容

git show commit_id #查看commit_id对应的提交内容

_ git show -2 #查看最近2次的提交内容_

3.4回退与撤销

git reset #将当前未提交的修改回退到workspace,git add的逆向,不修改代码

git reset –hard #将当前未提交的修改删除

_ git reset commit_id #回退到日志commit_id对应的位置,不修改代码_

_ git reset –soft commit_id #效果等同于上一条命令加git add –all_

_ git reset –hard commit_id #回退到日志commit_id对应的位置,且修改代码_

_ git reset HEAD^ #回退最近一次提交_

_ git reset HEAD~2 #回退最近2次提交_

git revert

git revert commit_id #撤销指定提交

_ git revert HEAD #撤销最近一次提交_

3.5分支与标签

git branch #查看分支

git branch dev #创建分支dev

_ git branch -d dev #删除分支dev_

_ git branch -a #查看所有分支,包括远程分支_

_ git branch –set-upstream dev origin/dev #新建一个新本地分支与远程分支对应_

_ git branch –set-upstream-to=origin/<branch> fix #设置本地分支与远程分支对应关系,也可切换到远程分支,然后用git checkout -b <branch-name>创建并切换分支_

git checkout dev #切换到分支dev

git checkout -b test #创建并切换到分支test

git tag #查看已创建的tag

git tag tag_name #创建tag

_ git tad -d tag_name #删除tag_

3.6合并与衍合

git merge dev #合并dev分支到当前分支

git rebase dev #衍合指定分支到当前分支

3.7远程操作

git remote #查看远程仓库

git remote -v #查看远程仓库详情

git remote add name url #添加一个远程

_ git remote remove name #删除一个远程_

_ git remote prune origin #远程被删除的分支,本地同步删除_

git fetch #从远程库获取提交

git pull #同步远程版本,git fetch + git merge FETCH_HEAD

_ git pull origin dev #同步远程分支origin/dev_

git push #提交到远程仓库

_ git push origin master #推送本地当前分支内容到远程remotes/origin/master_

git push origin –delete <branchName> #删除远程分支

_ _ git push origin –delete tag <tagname> #删除远程tag

3.8其他

git clean

Git clean -d #清除文件

Git clean -df #清除文件和目录

git apply 1.patch #应用补丁包

git blame 1.txt #查看1.txt最近一次修改记录

git grep #版本库管理的文件中搜索内容

git bisect #二分法查找某一次提交

git bisect start #开始 bisect

_ _ git bisect good xxxxxx #录入正确的 commit

_ _ git bisect bad xxxxxx #录入出错的 commit

_ _ git bisect bad #标记错误,决定二分法的方向

_ _ git bisect good #标记正确,决定二分法的方向

_ _ git bisect reset #直到定位到出错的 commit,退出 bisect

git stash #暂存当前修改

_ git stash list #查看暂存列表_

_ git stash apply #恢复最近一次暂存内容_

_ git stash apply stash@{1} #恢复指定的某个暂存内容_

_ git stash drop stash@{1} #删除一个暂存内容_

_ git stash clear #清空暂存内容_

git cherry-pick commit_id #将其他分支的某次提交应用到当前分支

gitk #查看git分支关系等的一个图形化工具

git gc #版本库存储整理优化

git gui #以图形化界面展示git交互窗口

4案例演示

分支管理

本地分支创建与删除

远程分支创建与删除

代码修改与提交

5学习检查

1同步一个线上git仓库,并初始化本地的各个分支

2一次典型的代码修改与提交

3跟踪一个文件的修改提交记录

4跟踪一个文件的每行最近修改记录

5补丁制作与应用

6有未提交的修改时,切换到其他分支处理问题

知识共享许可协议
文章四川掌麦科技有限公司创作,采用知识共享署名 4.0 国际许可协议进行许可。