git安装教程与基本操作
来源:互联网 发布:技嘉主板控制软件 编辑:程序博客网 时间:2024/06/04 19:14
windows平台git简易安装与基本操作
参考自龙恩0707的博客
安装
- 进入git官网下载需要的版本。
- 下载完成后运行程序,安装过程均选择默认,安装路径可视情况更改,建议设置到无中文无空格目录。
- 安装完成后win+R运行cmd进入命令提示符,输入git显示如下,则安装成功。
- 在开始菜单中找到git->git bash,点击后弹出下面的窗口,
- 因为git是分布式版本控制系统,所以需要填写用户名和邮箱作为一个标识。在命令行输入:
- git config –global user.name “你的用户名(如:L_zhoutao)”
- git config –global user.email “你的邮箱(如:1217396582@qq.com)”
到这里就可以正常的使用git了。
基本操作
创建版本库
版本库就是一个存放文件的仓库或者说目录,可以管理每个文件的修改,删除,还原。
- 通过命令git init把目录变成可管理的仓库,自动生成一个.git文件,该目录是用来跟踪管理版本的。
- 把文件添加到版本库中,版本控制系统只能跟踪文本文件的改动,如程序代码,txt文件。图片视频这种的则无法跟踪变化。
- git add 文件名 ->将文件添加到暂存区。
- git commit -m “提交注释” ->把文件提交到仓库。
- git status ->查看状态以及是否有文件未提交,每进行一个操作都可以随时查看。
版本回退
- git log ->查看历史提交记录。
- git reset –hard HEAD^ ->回退到上一个版本
- git reset –hard HEAD^^ ->回退到上上个版本
- git reset –hard HEAD~100 ->回退到前100个版本
- git reflog ->获取版本号,然后git reset –hard 版本号 ->回退到具体某个版本。
工作区与版本库
工作区:就是你在电脑上看到的目录,比如目录下testgit里的文件(.git隐藏目录版本库除外)。或者以后需要再新建的目录文件等等都属于工作区范畴。
版本库(Repository):工作区有一个隐藏目录.git,这个不属于工作区,这是版本库。其中版本库里面存了很多东西,其中最重要的就是stage(暂存区),还有Git为我们自动创建了第一个分支master,以及指向master的一个指针HEAD。
撤销修改和删除文件
在未提交以前发现内容有误想恢复以前的版本,有以下方法:
- 手动删除需要去掉的文件,然后add并commit。
- 使用git reset –hard HEAD^恢复到上一个版本。
- git checkout – 文件名 ->把文件在工作区做的修改全部撤销。
删除文件:rm 文件名,然后commit。
远程仓库
注册GitHub账号,由于你的本地Git仓库和github仓库之间的传输是通过SSH加密的,所以需要以下设置:
- 创建SHH Key:打开命令行,输入命令ssh-keygen -t rsa –C “邮箱地址youremail@example.com”,有两个文件:id_rsa是私钥,不能泄露出去,id_rsa.pub是公钥,可以放心地告诉任何人。
- 登录github,打开” settings”中的SSH Keys页面,然后点击“Add SSH Key”,填上任意title,在Key文本框里黏贴id_rsa.pub文件的内容。点击Add Key。
添加远程库:
在本地创建了一个Git仓库后,又在github创建一个Git仓库,并且让这两个仓库进行远程同步,这样github的仓库可以作为备份,又可以其他人通过该仓库来协作。
- 在GitHub上创建一个新的仓库。
- 在本地对应的仓库下运行命令 git remote add origin https://github.com/zt1217396582/testgit.git (网址为你自己相应的)
- git push -u origin master ->把本地仓库master分支内容推送到GitHub仓库中。 后续只需要使用git push origin master提交修改。
远程库克隆:
git clone https://github.com/zt1217396582/testgit
创建与合并分支
在版本回退里,每次提交,Git都把它们串成一条时间线,这条时间线就是一个分支。master分支叫主分支,。HEAD严格来说不是指向提交,而是指向master,master才是指向提交的,所以,HEAD指向的就是当前分支。
- 创建分支:git branch dev
- 切换分支:git checkout dev
- 合并分支:git merge dev
- 创建+切换分支:git checkout –b dev
- 删除分支:git branch –d dev
分支策略:首先master主分支应该是非常稳定的,也就是用来发布新版本,一般情况下不允许在上面干活,干活一般情况下在新建的dev分支上干活,干完后,比如上要发布,或者说dev分支代码稳定后可以合并到主分支master上来。
另外,Git用<<<<<<<,=======,>>>>>>>标记出不同分支的内容,其中<<
BUG分支
在开发中,会经常碰到bug问题,那么有了bug就需要修复,在Git中,分支是很强大的,每个bug都可以通过一个临时分支来修复,修复完成后,合并分支,然后将临时的分支删除掉。
比如我在开发中接到一个404 bug时候,我们可以创建一个404分支来修复它,但是,当前的dev分支上的工作还没有提交。并不是我不想提交,而是工作进行到一半时候,我们还无法提交,比如我这个分支bug要2天完成,但是我issue-404 bug需要5个小时内完成。怎么办呢?还好,Git还提供了一个stash功能,可以把当前工作现场 ”隐藏起来”,等以后恢复现场后继续工作。
具体步骤:
- 将当前的工作现场隐藏起来:git stash
- 查看状态是否干净:git status
- 在master分支上创建临时分支issue-404:git checkout -b issue-404
- 将文件修改以后提交: git add readme.txt和git commit -m “fix bug 404”
- 切换到master分支:git checkout master
- 合并分支issue-404:git merge –no-ff -m “merge bug fix 404” issue-404
- 查看内容:cat readme.txt
- 和issue-404一致以后,删除临时分支issue-404:git branch -d issue-404
- 回到dev分支上:git checkout dev
- 查看工作现场:git stash list
- 恢复工作现场:git stash apply
多人协作
推送分支:git push origin master
一般情况下,master主分支要时刻与远程同步。一些修复bug分支不需要推送到远程去,可以先合并到主分支上,然后把主分支master推送到远程去。
抓取分支:
- 在另一台电脑上克隆远程库到本地来:git clone https://github.com/zt1217396582/testgit
- 两台电脑同时对同样的文件进行修改然后推送,推送到远程库是发生错误。
- 抓取最新的提交:git pull
- 合并有冲突的话需要手动解决,和分支管理中的解决方式一样。
- 然后提交并推送到远程库中。
因此,多人协作工作模式一般是这样的:
- 首先,可以试图用git push origin branch-name推送自己的修改.
- 如果推送失败,则因为远程分支比你的本地更新早,需要先用git pull试图合并。
- 如果合并有冲突,则需要解决冲突,并在本地提交。再用git push origin branch-name推送。
常用命令
- mkdir XX (创建一个空目录 XX为目录名)
- pwd (显示当前路径)
- cd X:(转到某个磁盘 X为磁盘名)
- cd XXX (转到某个路径 XXX为文件夹名) 其实直接在想要创建版本库的文件夹目录中右键选择git bash,弹出的git就会是你想要的路径。
- git init (把当前的目录变成可以管理的git仓库,生成隐藏.git文件)
- git add XX (把XX文件添加到暂存区 以下XX文件均带有后缀,如txt等) 暂存区顾名思义就是暂时存放你想要提交的文件的地方。
- git commit -m “XX” (提交暂存区中的文件, XX为提交注释)
- git status (查看仓库状态) 确认暂存区是否还有未提交的更改。
- git diff XX (查看XX文件修改了哪些内容)
- git log (查看提交的历史记录)
- git reset -hard HEAD^ 或 git reset -hard HEAD~ (退回到上一个版本) 如果想回退到100个版本,使用 git reset -hard HEAD~100.
- cat XX (查看XX文件的内容)
- git reflog (查看历史记录的版本号ID)
- git rm XX (删除XX文件)
- git remote add origin https://github.com/zt1217396582/testgit (关联一个远程库)
- git push -u origin master (把当前master分支推送到远程库 仅第一次需要-u)
- git clone https://github.com/zt1217396582/testgit (从远程库中克隆到本地 路径为当前git的路径)
- git branch name (创建name分支)
- git checkout -b dev (创建dev分支并切换到dev分支)
- git branch (查看当前所有的分支)
- git checkout master (切换回master分支)
- git merge dev (在当前的分支上合并dev分支)
- git branch -d dev(删除dev分支)
- git stash (把当前的工作隐藏起来 等以后恢复现场后继续工作)
- git stash list (查看所有被隐藏的工作现场/文件列表)
- git stash apply (恢复被隐藏的工作现场,但内容不删除)
- git stash drop (删除工作现场)
- git stash pop (恢复工作现场的同时 也删除工作现场)
- git remote (查看远程库的信息)
- git remote –v (查看远程库的详细信息)
2017/5/20 21:24:34
- git安装教程与基本操作
- Git安装与基本操作
- Git-01_安装与基本操作
- git Bash 安装&配置与基本操作
- Git安装与基本操作总结
- 【Git 教程(5)】 Git基本操作
- GIT安装与操作
- Git与TortoiseGit基本操作
- Git与TortoiseGit基本操作
- Git 命令与基本操作
- Git与TortoiseGit基本操作
- Git与TortoiseGit基本操作
- Git与TortoiseGit基本操作
- Git与github基本操作
- Git与TortoiseGit基本操作
- Git与TortoiseGit基本操作
- Git与TortoiseGit基本操作
- Git与TortoiseGit基本操作
- A^X mod P(山东省第四届ACM大学生程序设计竞赛 )
- docker常用命令
- Memcached安装以及在java在中的使用
- [BZOJ4552][TJOI2016&HEOI2016]排序-线段树合并
- 如何在 Laravel 项目中处理 Excel 文件--->Laravel配置EXCEL
- git安装教程与基本操作
- Java如何实现对Mysql数据库的行锁
- 解决技术面试题的五步法
- Android开发之滑动ScrollView实现ToolBar半透明效果
- K
- Android与Java的一些思考
- HDOJ 2028 Lowest Common Multiple Plus
- 解密函数调用
- 数据链表