Ŀ¼
-
下载安装, 下载地址: https://git-scm.com/downloads 每个系统的都有(linux、mac、windows等),看官网的安装教程,很详细,此处我以windows来练习
-
首先创建一个文件夹,这个文件夹就是我们将来通过git来管理的所有文件的存放地点 。
-
在文件夹中右键 使用Git Bash
-
在弹出的窗口中执行初始化指令,让git帮我们对这个文件夹中的所有文件以及文件夹进行管理
-
git init #创建git版本管理的本地仓库
-
产生的.git文件夹用来存放你管理的文件的所有版本以及git配置相关的内容,不要轻易动它
git status 查看仓库中所有的文件夹和文件的状态 git add supercrm 让git管理单独的文件夹或者文件 git add . 管理所有文件和文件夹 配置用户名和邮箱 $ git config --global user.name <用户名> $ git config --global user.email <邮箱地址> 例如: $ git config --global user.name "吴超" $ git config --global user.email "1069696250@qq.com" 然后就可以提交版本了,看指令 git commit -m '描述信息' 例如: git commit -m 'v1版本'
管理之后进行二次开发,修改一些文件之后:
git add supercrm git commit -m 'v2版本'
查看日志
git log
1 进入要管理的目录 2 git init初始化 即:让git管理我们当前的文件夹 3 git status 检测当前文件夹中的文件状态 4 三种颜色的变化 a 红色:新增文件或者修改的老文件 --> 执行git add .(或者单个文件或文件夹的名称) b 绿色:git已经管理起来了 --> 执行git commit -m '描述信息' c 白色:生成版本了 好,之后我们会细说这几个颜色到底还有什么意义 5 git log 查看版本记录
介绍: 作区(写代码的地方)―git add暂存区(临时存储)―git commit本地库(历史版本)
Git的版本库里存了很多东西,其中最重要的就是称为stage(或者叫index)的暂存区,还有Git为我们自动创建的第一个分支master,以及指向master的一个指针叫HEAD。 文件往Git版本库里添加的时候,是分两步执行的: 第一步用git add把文件添加进去,实际上就是把文件修改添加到暂存区。 第二步是用git commit提交更改,实际上就是把暂存区的所有内容提交到当前分支。 创建Git版本库时,Git自动为我们创建了唯一一个master分支,git commit就是往master分支上提交更改。add需要提交的文件修改通通放到暂存区,然后commit可一次性提交暂存区的所有修改
git log #查看日志,每个版本都有版本号
git reset --hard 版本号 例如:git reset --hard a3c69761b4ecd8b23c392315cd245f2939024882 (第二个版本的版本号)
git reflog #也是查看日志,但是包括回滚操作的版本 再通过git reset --hard 版本号来回滚
git checkout -- 文件名 #将文件从以修改的工作区回滚到未修改的状态
git reset HEAD 文件名
git init git add git commit git log git reflog git reset --hard 版本号
git branch 查看当前分支 git branch dev 创建一个名为dev的分支 git checkout dev 将工作切换到dev分支上 git checkout -b dev #创建并切换到dev分支上,和上面两个指令的效果一样 git branch master git merge bug #分支合并---首先切换到master分支,然后在master分支上执行merge指令来合并bug分支的代码 git branch -d bug 删除bug分支
看图:
-
注册Github账号
-
创建仓库
-
本地代码推送到仓库
好,那么我就来看看一看具体怎么玩:
这个就不带着大家注册了,看图,网址: https://github.com/
注册号账号之后,点击上面的sign in进行登陆,登陆成功之后,会来到这个页面,也就是你的首页
刷新我们的GitHub页面,就看到有两个分支了
git clone 地址 例如: git clone https://github.com/clschao/dbhot.git
上传代码 1. 给远程仓库起名 git remote add origin 远程仓库地址 2. 向远程推送代码 git push -u origin 分支 在新电脑上第一次获取代码 1. 克隆远程仓库代码 git clone 远程仓库地址(内部已实现git remote add origin 远程仓库地址) 2. 切换分支 git checkout 分支 在新电脑上进行开发 1. 切换到dev分支进行开发 git checkout dev 2. 把master分支合并到dev(仅一次) git merge master 3. 修改代码 4. 提交代码 git add . git commit -m 'xx' git push origin dev 回老电脑上继续写代码 1. 切换到dev分支进行开发 git checkout dev 2. 拉代码 git pull origin dev 3. 继续开发 4. 提交代码 git add . git commit -m 'xx' git push origin dev
git pull origin dev git pull origin master
在公司开发的时候 1. 拉代码 git pull origin dev 2. 继续开发 3. 提交代码 git add . git commit -m 'xx' 注:忘记push了,没有推给GitHub 回到家继续开发 1. 拉代码,发现在公司写的代码忘记提交到GitHub上了 git pull origin dev 2. 继续开发其他功能 但是在家里写的功能有可能和你在公司开发的代码有些冲突(在同一行) 3. 把dev分支也推送到了远程 git add . git commit -m 'xxx' git push origin dev 第二天到了公司继续写代码 1. 拉代码,把昨天晚上在家里写的其他功能的代码拉到本地(有合并、可能产生冲突) git pull origin dev 2. 如果有冲突,手动解决冲突(公司电脑上昨天忘记push的代码和昨日回到家后写的代码可能有些冲突) 3. 继续开发其他功能 4. 把dev分支也推送到远程 git add . git commit -m 'xxxx' git push origin dev
git fetch origin dev #将远程仓库dev分支的代码拉到本地git的版本库中,为了和本地dev分支做个区分,远程拉下来的dev分支会叫另外一个名字:origin/dev git merge origin/dev # 合并远程拉取下来的dev分支的代码
方式1: git rebase -i 版本号 例如:git rebase -i 281f2525fb3600b663a6554ed9e301781239bd69 #这个是v2版本的版本号,那么执行这个指令的意思就是将v2版本一直到目前最新版本v4,全部合并到一起 方式2:常用 git rebase -i HEAD~3 #3表示合并3个版本,而HEAD~3的意思是以当前最新的版本开始,合并最近的三个版本,也就是v4、v3、v2将合并到一起
如果你合并版本之前,已经将v2版本push到远程了,这样你再合并v2版本的话,等你再push到远程会导致远程的版本变的很混乱,所以建议不要将已经push到远程的版本进行合并,我们最好只合并自己本地的,然后再push到远程。
1. git branch dev 和 git checkout dev #创建dev分支和切换到dev分支上 2. 创建一个dev.txt文件 3. git add . 和git commit -m 'dev branch' 4. git checkout master #切换到master分支上 5. 创建一个master.txt文件 6. git add .和git commit -m 'master branch' #在master分支上提交一下最新添加的master.txt文件也作为master分支上的一个版本 在dev分支上执行一个git log查看一下dev分支提交的版本 在master分支上执行一个git log 查看一下master分支提交的版本 git log --graph #图形化界面显示所有的提交记录 git log --graph --pretty=format:'%h %s' #让图形化界面显示记录的时候更清晰一些:%h是显示版本号,%s是显示版本描述。 到目前为止,我们就做出了上面那个图的效果,在dev分支上有一个版本,在master分支上有其他的版本 那么以后我们再开发的时候,可以通过rebase来让dev分支上的记录合并到master分支上,那么我们在master分支上再查看git log --graph的时候就只能看到一条线的记录了 现在我们通过rebase来合并一下dev分支上的版本,让git log显示的记录编程一条线 1. git checkout dev 2. git merge master #注意,因为dev分支上的代码没有master分支上的全,所有先合并一下master分支,然后再进行后面的操作 3. 创建一个dev1.txt -- git add . -- git commit -m 'dev branch commit 1' 3. git checkout master 4. 创建一个master1.txt文件 -- git add . -- git commit -m 'master branch commit 1' 5. 这样的话我们再dev分支上有个版本,master分支上又一个版本 6. git checkout dev 7. git rebase master #将dev分支上的这个新记录并到master分支的记录上 8. git checkout master 9. git merge dev 然后我们再执行git log --graph 就看到了一条线,并且这条线上有dev分支开发的那个版本
git config --local merge.tool bc3 #--local的意思是只对当前项目有效,其他的本地仓库是不生效的 git config --local mergetool.path '/usr/local/bin/bcomp' #beyond compare的执行程序的安装路径 git config --local mergetool.keepBackup false
如果通过上面的指令配置不能正常生效的话,就改动以下配置文件,打开 .gitconfig 配置文件 (windows 在 C:\Users\Administrator [Administrator 为你当前用户名], mac 在 ~/),加入以下内容:
[merge] tool = bc3 [mergetool "bc3"] path = D:/Program Files (x86)/Beyond Compare 3/BCompare.exe #注意win下是这个/路径分隔符,文件路径尽量不要出现空格昂
git mergetool
注意,我们现在创建的项目仓库是在我们创建的组织里面创建的,和之前单纯的创建仓库是不太一样的,因为我们公司将来可能有多个项目,那么我们就可以通过这个组织来管理多个仓库就可以了。
git tag -a 'v1' -m '第一版'
git push origin --tags #将所有的tag推送到远程仓库
git push origin dev
-
两个成员都需要先去GitHub上注册一下自己的GitHub账号,其他的代码托管平台也是这么玩,先去注册账号。这里我自己又通过其他的邮箱创建了一个名为Jadentest的账号,用它来测试
-
邀请成员
点击邀请之后,弹出下面的窗口:
输入成员名称,然后点击invite,看到下面的页面,先选择一个普通成员就行了:
那么这个Jadentest在创建账户时留下的邮箱就会收到一个邮件:
点击查看这个邮件,然后点击加入组织:
然后会看到下面这个页面:
再点击join加入就可以了,但是记着,上面的页面是出现在了Jadentest这个GitHub账户中的页面,所以如果你是用一个电脑在玩,需要先登陆上这个账户,再点击邮件加入组织。
好,看一下GitHub我们的组织中people这个选项中,就有了两个成员:
好,继续登陆我们的clschao这个账户,然后看一下组织的权限以及项目的权限。
配置文件其实分三个:
git config --local user.name 'wuchao' git config --local user.email 'wuchao@xx.com'
git config --global user.name 'wuchao' git config --global user.name 'wuchao@xx.com'
所有项目都生效,mac在/etc/.gitconfig文件中,windows在: ,对应配置指令:
git config --system user.name 'wupeiq' git config --system user.name 'wupeiqi@xx.com' 注意:需要管理员权限,也就是root权限
#配置用户名和邮箱 git config --local user.name 'wuchao' git config --local user.email 'wuchao@xx.com' #配置beyond compare工具 git config --local merge.tool bc3 git config --local mergetool.path '/usr/local/bin/bcomp' #工具路径 git config --local mergetool.keepBackup false #配置push的时候的远程仓库的地址 git remote add origin 地址, 默认是添加在了本地配置文件中(--local)
配置 Git 的相关参数。 Git 一共有3个配置文件: 1. 仓库级的配置文件:在仓库的 .git/.gitconfig,该配置文件只对所在的仓库有效。 2. 全局配置文件:Mac 系统在 ~/.gitconfig,Windows 系统在 C:\Users\<用户名>\.gitconfig。 3. 系统级的配置文件:在 Git 的安装目录下(Mac 系统下安装目录在 /usr/local/git)的 etc 文件夹中的 gitconfig。 看指令: # 查看配置信息 # --local:仓库级,--global:全局级,--system:系统级 $ git config <--local | --global | --system> -l # 查看当前生效的配置信息 $ git config -l # 编辑配置文件 # --local:仓库级,--global:全局级,--system:系统级 $ git config <--local | --global | --system> -e # 添加配置项 # --local:仓库级,--global:全局级,--system:系统级 $ git config <--local | --global | --system> --add <name> <value> # 获取配置项 $ git config <--local | --global | --system> --get <name> # 删除配置项 $ git config <--local | --global | --system> --unset <name> # 配置提交记录中的用户信息 $ git config --global user.name <用户名> $ git config --global user.email <邮箱地址> # 更改Git缓存区的大小 # 如果提交的内容较大,默认缓存较小,提交会失败 # 缓存大小单位:B,例如:524288000(500MB) $ git config --global http.postBuffer <缓存大小> # 调用 git status/git diff 命令时以高亮或彩色方式显示改动状态 $ git config --global color.ui true # 配置可以缓存密码,默认缓存时间15分钟 $ git config --global credential.helper cache # 配置密码的缓存时间 # 缓存时间单位:秒 $ git config --global credential.helper 'cache --timeout=<缓存时间>' # 配置长期存储密码 $ git config --global credential.helper store
原来的地址: https://github.com/wuchao/dbhot.git 修改的地址: https://用户名:密码@github.com/wuchao/dbhot.git #这样就在使用远程地址的时候直接加上了用户名和密码,就不需要每次都重新输入了 git remote add origin https://用户名:密码@github.com/wuchao/dbhot.git git push origin master
ssh-keygen #或者ssh-keygen -r rsa 这样的话就会在C:\Users\chao\.ssh 目录下生成两个文件(mac是在~/.ssh 文件夹下)
git remote add origin git@github.com:gitflowchao/gitflowtest.git #这个地址是ssh的地址了
git push origin master
添加让git忽略的文件:
还可以添加.gitignore自己,通过*.txt能够将所有的.txt结尾的文件全部让git忽略掉
1.issues
然后我们再点击上面这个issues选项,会看到下面的页面: