git的使用
Git 是一个很强大的分布式版本管理工具,它不但适用于管理大型开源软件的源代码(如:linux kernel),管理私人的文档和源代码也有很多优势(如:wsi-lgame-pro)

workspace:工作区
index/staged:暂存区
repository:本地仓库
remote:远程仓库
workspace首先是add到index(staged)上,然后commit到repository,再push到remote.
五、两种方式clone服务器上的代码库:
1)https方式
通过填写账号和密码就可以clone代码库
cmd例子: git clone https://xxx.xxx
2)ssh公钥和私钥方式
先在本地制作公钥和私钥.
cmd例:ssh-keygen -t rsa或者是ssh-key -t rsa -C “可以填任何东西文字一般写邮箱,这段文字就在公钥私钥中文本的最后面”
解释:ssh-keygen -t rsa是直接制作公钥和私钥 -t是填写加密的标准rsa 按下三层Enter的键可以看见公钥和私钥放在哪里了
.(一般在C:\Users\Administrator.ssh的文件夹中公钥.pub后缀)
然后在服务器中生成公钥,生成之后,在本地cmd中:git clone git@gitxx.x网址x.git就搞定clone代码库了
命令:
git add . //添加当前目录下所有文件到暂存区(index/staged)
git add file_1 file_2 … 指定添加到index/staged中的文件名
git resore 将不在暂存区的文件撤销更改(在本地工作空间,修改后未做git add)
git restore --staged 将文件从暂存区撤出,但不会撤销文件的更改(修改后,做了git add)
git commit -m “本功能全部完成”
执行完commit后,想撤回commit,怎么办?
git reset --参数 HEAD^
–mixed
意思是:不删除工作空间改动代码,撤销commit,并且撤销git add . 操作
这个为默认参数,git reset --mixed HEAD^ 和 git reset HEAD^ 效果是一样的。
–soft
不删除工作空间改动代码,撤销commit,不撤销git add .
–hard
删除工作空间改动代码,撤销commit,撤销git add .
注意完成这个操作后,就恢复到了上一次的commit状态。
HEAD^的意思是上一个版本,也可以写成HEAD~1
如果你进行了2次commit,想都撤回,可以使用HEAD~2
如果commit注释写错了,只是想改一下注释,只需要:
git commit --amend
此时会进入默认vim编辑器,修改注释完毕后保存就好了
git restore --staged 将文件从暂存区撤出,但不会撤销文件的更改(修改后,做了git add)
git resore 将不在暂存区的文件撤销更改(在本地工作空间,修改后未做git add)
忽略一些文件、文件夹不提交
在仓库根目录下创建名称为“.gitignore”的文件,写入不需要的文件夹名或文件,每个元素占一行即可,如
target
bin
*.db
重点:本地branch、origin branch管理
Git在本地新建分支后,可做远程分支关联。关联目的是,如果在本地分支下进行pull 和push操作时 ,便不需要指定远程的分支。
git在本地新建分支,push到远程服务器上之后,git pull操作时,如果没有关联关系会提示要求up-to-data
所以,git本地新建一个分支后,必须要做远程分支关联.
1、创建本地分支:git branch local_branch_name或 git checkout -b local_branch_name(注: 该操作会直接切换到新分支下)
2、远程分支创建
- git push origin local_branch_name:remote_branch_name
释:此处只是会创建远程分支,并完成推送,但是本地分支并未与该新建远程分支建立关系,可通过git pull发现问题,
如果想建立联系需要通过命令: git branch --set-upstream-to=origin/<remote_branch_name> localhost_branch_name[可省略默认当前本地分支名]. - git push --set-upsteam origin local_branch_name (注意:远程分支名字必须要和当前本地分支名一致,亲测)
释:此处会创建和分支同名的远程分支名,同时该本地分支会与该处新建的远程分支建立关联关系. - git push -u origin remote_branch_name
注:此命令需注意:1. 当remote_branch_name不存在,且改远程名字与当前分支名 相同 时,该命令会创建该远程分支,并和本地分支建立关联关系;
2. 当remote_branch_name不存在,且改远程名字与当前分支名 不相同 时,该命令会报错;
3. 当remote_branch_name存在, 如果远程名字与当前分支名 相同 时,则建立关联关系;
如果远程名字与当前分支名 不相同 时,则无变化(待进一步确认),
3、
删除本地分支在:git branch -d (branchname)
删除远程分支:git push origin --delete remote_branch_name