目录[+]
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有未提交的修改时,切换到其他分支处理问题
