安装命令如下:
sudo apt-get install git
新建一个目录git_test,在git_test目录下创建一个版本库
创建一个版本库:
git init
创建一个版本:
git add code.txt
git commit -m "版本说明"
查看版本记录:
git log
回到某一个版本:
git reset --hard HEAD^ (回到上一个版本,HEAD^^表示上上个版本,
HEAD~1 上一个版本, HEAD~20前20个版本)
也可以通过git log ,查看版本号之后,通过版本号回到制定版本:
git reset --hard 版本号(例如:git reset --hard b3232d45)
如果关闭终端,可以通过下面命令,查看所有的操作:
git reflog
查看当前工作树的状态:
git status
丢弃工作区的改动
git checkout -- <文件> (例如:git checkout -- cook.txt)
撤销暂存区的改动,放回工作区
git reset HEAD <文件>
小结:
场景1:当你改乱了工作区某个文件的内容,想直接丢弃工作区的修改时,用命令git checkout -- file。
场景2:当你不但改乱了工作区某个文件的内容,还添加到了暂存区时,想丢弃修改,分两步,第一步用命令git reset HEAD file,就回到了场景1,第二步按场景1操作。
场景3:已经提交了不合适的修改到版本库时,想要撤销本次提交,参考[版本回退]一节。
git reset --hard HEAD^
对比工作区和某个版本的不同
git diff HEAD -- code.txt
对比两个版本间文件的不同:
git diff HEAD HEAD^ -- code.txt
git diff 8ba028c 061734 -- code.txt
删除工作区文件
git rm 文件
并且提交 git commit -m '说明'
另一种情况是删错了,提交之前,可以直接使用git checkout – code2.txt
,这样文件code2.txt又回来了。
小结:
命令git rm用于删除一个文件。如果一个文件已经被提交到版本库,那么你永远不用担心误删,但是要小心,你只能恢复文件到最新版本,你会丢失最近一次提交后你修改的内容。
分支管理
查看分支:git branch
创建分支:git branch <name>
切换分支:git checkout <name>
创建+切换分支:git checkout -b <name>
合并某分支到当前分支:git merge <name>
删除分支:git branch -d <name>
解决冲突
git用<<<<<<<,=======,>>>>>>>标记出不同分支的内容,我们修改如下后保存
分支管理策略
如果要强制禁用fast forward模式,git就会在merge时生成一个新的commit,这样,从分支历史上就可以看出分支信息。
准备合并dev分支,请注意--no-ff参数,表示禁用Fast forward:
git merge --no-f -m '禁用fast forward' dev
因为本次合并要创建一个新的commit,所以加上-m参数,把commit描述写进去。
Bug分支
存储当前分支的工作状态
git stash
然后返回主分支,重新创建 修改bug的临时分支,修改完后提交合并bug分支。
最后返回当时工作的状态:
git stash pop
github的使用
配置github
在ubuntu的命令行中,回到用户的主目录下,编辑文件.gitconfig,修改某台机器的git配置。
修改为注册github时的邮箱,填写用户名
使用如下命令生成ssh密钥。
ssh-keygen -t rsa -C "邮箱地址"
进入主目录下的.ssh文件件,下面有两个文件。
公钥为id_rsa.pub
私钥为id_rsa
查看公钥内容,复制此内容
回到浏览器中,填写标题,粘贴公钥
克隆项目
复制git项目的地址
在本地终端进行客隆:
git clone git@github.com:geyi8901/bj18.git
如果克隆出错,输入以下命令解决:
eval "$(ssh-agent -S)'
ssh-add
上传分支
项目克隆到本地之后,执行如下命令创建分支smart.
git checkout -b smart
本地开发代码之后,需要git add git commit -m 最后进行代码分支推送。
推送分支,就是把该分支上的所有本地提交推送到远程库,推送时要指定本地分支,这样,git就会把该分支推送到远程库对应的远程分支上
git push origin 分支名称
例:
git push origin smart
如果上传出错,重新建立
将本地分支跟踪服务器分支
git branch --set-upstream-to=origin/远程分支名称 本地分支名称
例:
git branch --set-upstream-to=origin/smart smart
从远程分支上拉取代码
git pull origin 分支名称
例:
git pull origin smart
使用上述命令会把远程分支smart上的代码下载并合并到本地所在分支。
工作使用git
项目经理:
项目经理搭建项目的框架。
搭建完项目框架之后,项目经理把项目框架代码放到服务器。
普通员工:
在自己的电脑上,生成ssh公钥,然后把公钥给项目经理,项目经理把它添加的服务器上面。
项目经理会给每个组员的项目代码的地址,组员把代码下载到自己的电脑上。
创建本地的分支dev,在dev分支中进行每天的开发。
每一个员工开发完自己的代码之后,都需要将代码发布远程的dev分支上。