要实现git管理本地代码
1.在目标路径下git init一下相当于建立了一个git的专用仓库,用于后期做记录
2.要提交代码文件的话就是:git add "filename.文件格式" #这一步实现的是把文件存放至暂存区
3.此时还需要对版本进行版本说明:git commit -m "说明的内容一般就写:first commit / second commit..." #创建版本记录
4.要查看当前版本的序列号:git log指令
5.当你要回退看原先版本的文件:git reset --hard HEAD^ #这里的^表示上一层,一个表示一层;当层数较多的时候用:git reset --hard HEAD~1 #这里的数字表示往回返的层数
6.要去向制定的版本:git reset --hard 版本号 #通过第四步的操作就知道了
7.但是如果关闭终端,又重新打开,要找寻特定版本好:git reflog #这样会罗列所有之前的版本信息
8.如果没有对工作区内容进行修改,强行上传:git add + git commit -m "说明的内容" + git status会提示无文件要提交,干净的工作区
9.git管理文件的修改,智慧提交暂存去的修改来创建版本
10.当你改乱了工作区的某个文件的内容,想直接丢弃工作区的修改时,如何撤销修改:git checkout -- "filename"
11.当你改乱了工作区的某个文件内容,还添加到暂存区时,如何撤销修改:git reset HEAD file(这一步就是取消暂存),就回到第10步了
12.对比工作区和版本记录区的文件对比:git diff HEAD -- “filename.格式”
13.简短显示 修改log 指令:git log --pretty=oneline
14.查看当前分支指令: git branch
15.创建并切换到一个新的分支上,指令:git checkout -b dev #dev新分支的名字 这个时候指针就从原先的master分支切换到dev分支上来啦
16.切换回master分支的操作指令:git checkout master #这个时候基于dev分支的记录是不显示的
17.分支合并指令:git merge dev #这个时候就把master和dev分支合并到一起了,但是也不是所有的都可以合并
18.删除某一分支的指令:git branch -d dev # 这里的dev表示待删除的分支名字
19.在两个并行的分支上对同一个文件进行编辑提交然后合并分支则会造成冲突,解决的办法就是手动解决这个冲突然后重新提交一遍
20.git log --graph --pretty=oneline 这个命令可以查看版本岁分支变化的图
21.通常合并分支时,如果可能git会用fast forward模式,但是有些快速合并不能成功而且和并的时候没有冲突,这个时候会合并之后并做一次新的提交。但是这种模式下,删除分支后,会丢分支信息
22.有时候不希望使用快速合并的操作:git merge --no-ff -m "合并说明" “要合并的分支名称”
23.修改代码时,中途要切除区修复bug,则需要对工作区现场进行保护,指令:git stash
24.修复bug的时候需要新建一个分支,并对相关代码在工作区修改,改完了记得提交一下,这时候可以切回原来的分支,然后把bug修改的那个分支合并一下,于此同时为了保存这次操作记录,所以需要禁用快速合并操作,git merge --no-ff -m "修复后合并版本" bug001。操作完成后就可以把这个bug分支删除了
25.如何找回原先的工作现场?1:先git stash list查看一下有多少个工作现场,git stash pop就可以回复到原先的现场
26.在github或者时gitee上创建仓库,new repository取好名字然后填入电脑的ssh公钥即可
27.如何找到电脑的公钥:输入指令cd#返回主目录下;
再输入vi .gitconfig;
生成ssh公钥指令:ssh-keygen -t rsa -C "注册的邮箱"#会提示把ssh公钥放下某个路径下,一路按enter就行;
cd .ssh/进入存放文件的目录下,ls一下可以看到id_rsa(私钥)/id_rsa.pub(公钥),cat id_rsa.pub#就可以打开这个文件内容,把这个内容复制到26步中区就可以
28.逻辑:一般上述这些创建仓库的过程都是由项目经理来进行,开发人员只需要对对应仓库内容进行克隆就行
29.克隆操作:首先在服务器端仓库的地方点击ssh克隆链接,例如:git@gitee.com:xinan_clo15620608347th/ceshi.git;然后在电脑目标路径下打开终端输入:git clone "ssh链接"
例如:git clone git@gitee.com:xinan_clo15620608347th/ceshi.git ,这时候ls一下就可以看见:仓库的内容在当前目录下就可以看到了
如果克隆的时候出现报错:please make sure you have the correct access rights and the repository exists.
则执行当前指令:eval "$(ssh-aqent -s)" #回车一下 然后:ssh-add #回车一下最后再执行一下克隆操作就好了
30.本地编辑推送:在目标路径下生成文件,新建分支git checkout -b "分支名字"---->编辑修改完文件进行git add "file"---->git commit -m "备注信息"---->把该分支上所有的本地提交推送到远程分支上:git push origin "本地分支名称",例如:git push origin dev 这样远程就会自动创建这个分支,并把内容附上(如果分支存在就不用再创建了)。
31.将本地分支跟踪服务器分支:git branch --set-upstream-to=origin/远程分支名称 本地分支名称,例如git branch --set-upstream-to=origin/master dev,
32.跟踪同步之后要修改本地的代码并做上传:git add file--->git commit -m "beizhu"--->git push即可,服务器端刷新一下就可以看到变化后的分支内容。
33.从远程分支上拉取代码:git pull origin 分支名称(例如master)。
一般来说:项目经理负责搭建项目框架,然后把框架放到服务器上。
员工在自己的电脑上生吃呢个SSH公钥,交给项目经理,项目经理会把它添加到服务器上面。项目经理会给每个组员的项目代码的地址,组员把代码下载到自己的电脑上。创建本地的分支dev,
在dev分支中进行每天的开发。每个员工在开发完自己的代码后,都需要将代码发布远程的dev分支上。 一般来说master分支:用于保存发布的项目代码。dev分支保存开发过程中的代码