1.服务器建立
裸仓库,可以避免直接在仓库中看到源码
git -init bare
2.把客户端的公钥和私钥上传到服务器,可以免密登录
客户端命令需要在你想要复制的目的文件夹中使用git bash打开
git-keygen -t rsa
然后把生成的密钥上传给服务器
在id_rsa.pub中使用复制
cd ~/.ssh
如果.ssh文件夹不存在,需要先使用root登陆一次
ssh localhost
之后
vim authorized_keys
把密钥复粘贴到这里。
3.复制代码
git clone ssh://服务器ip:/代码位置 (想复制到的位置,可不加)
4.配置用户(服务器端不会显示)
加--global代表所有文件夹都应用,否则只在当前目录应用
之后在客户端的.git中有
5.在git中编写代码
编写代码,并提交到暂存区,等累计后提交到服务器
vim filename.h
git add filename.h
//查看暂存区
git status
//把暂存区上传到本地存储区
git commit -m "log filename description"
//上传到远程服务器 master为所选分支, origin为服务器别名不能换
git push origin master
由于在裸仓库中不显示我们上传的代码,所以新建一个连接,并获取服务器的代码
如果连接已经有了,那么用
git pull
6.代码写错后怎么回退
6.1出错文件在暂存区
直接把新文件add就可以了
6.2出错文件在本地仓库
##退回到暂存区
git reset --soft head^
##退回到编译区
git reset --mixed head^
##直接删除
git reset --hard head^
其中head^为版本号指针,可以在git log中找到并替换
7.整理本地仓库(前提是别的分支不会依赖所修改的分支)
7.1单次整理
如果想修改仓库中的描述
git commit --amend
之后直接修改描述
忘记提交一个文件,需要把这个文件和上一次提交合并,那么在add后使用,会和上一次的commit合并。
7.2批量整理
git rebase -i (-h1 -h2如果没有,则整理所有)
想修改哪个提交,则把pick改成e,改成s是合并整理
继续修改下一个,没有则退出
git rebase --continue
查看效果
8 管理分支
#显示分支 -a会显示远程服务器的分支. *为当前所在分支
git branch (-a)
#创建本地分支 new_dev
git branch new_dev
#或者
git switch new_dev
#切换分支
git checkout new_dev
#创建并切换到分支 new_dev2
git checkout -b new_dev2
9.服务器和本地代码数据合并
#首先在一个备用分支上,使用pull来获得服务器数据
git pull
#然后进入到另一个分支,这里两个分支
git checkout new_dev2
#合并
git merge master
#处理文件冲突
vim ...
git add .
#-i代表处理冲突文件 .代表所有文件
git commit . -i -m "merge master fix conflicts"