git操作和vscode连接
0.生成ssh(具体操作看SSH界面里的生成密钥说明)
在git bush中输入
ssh-keygen -t rsa -C "your.email@example.com" -b 4096
命令来创建ssh密钥(具体到每个人的邮箱)
会提示保存密钥的文件(公钥),键入回车,y回车,可以不设置密码,成功生成密钥
大概如下图(这张图ssh-keygen应该改成上面的代码)
生成的ssh公钥去之前设置的地址(//.ssh/id_rsa
)中查找pub文件,然后把pub文件用记事本打开,复制到ssh需求处
1.在相应平台上新建仓库,然后按照给出的代码操作进行(在需要提交到仓库的文件夹中右键进行gitbush)
首先要进行git的全局设置,这一步在git bush中进行;
设置完毕后可以使用
git config --list
命令来查看是否设置成功(username和email)
2.在vscode终端中如果输入git命令出现git命令无法识别或不是批处理的情况,需要配置环境变量,具体是在上下两个Path中加上git安装目录下到bin文件夹的位置,即...\Git\bin(具体可以搜一下,网上有相关配置教程)
3.常用命令
git init //初始化本地git仓库(创建新仓库)
git status //查看当前版本状态(是否修改)
git branch //查看本地所有分支
git branch -a // 查看所有分支
git branch -r // 查看远程所有分支
git branch [name] //创建本地分支
git push origin [name] //创建远程分支(本地分支push到远程)
git checkout [name] // 切换分支
git merge [name] //合并分支
git branch -d [name] // 删除分支
git push -u origin master //推送文件(推送文件要先把代码库中的文件pull到本地代码中,使用git pull --rebase
origin master)
git diff // 查看尚未暂存的更新
git commit //将暂存区里的改动提交到本地版本库
git commit m "message" // 附带message提交到HEAD中
git branch -m | -M oldbranch newbranch // 重命名分支
git push并不会把tag标签传送到远端服务器上,只有通过显式命令才能分享标签到远端仓库。
1.push单个tag,命令格式为:git push origin [tagname]
例如:
git push origin v1.0 #将本地v1.0的tag推送到远端服务器
git reset //回退到指定提交
修改文件提交流程:
1.git add <filename> //把修改的文件添加到缓存区,或者使用git add *提交全部修改文件
2.git commit -m "代码提交信息" //该命令实际提交改动,但还未到仓库
3.git push origin master // 提交到远程仓库,master可以换成任何分支
使用简易指南
一、创建新仓库
创建新文件夹,打开,然后执行git init以创建新的git仓库
二、检出仓库
执行如下命令以创建一个本地仓库的克隆版本
git clone /path/to/repository
// 如git clone http://网址/qiansiqing/123
如果是远端服务器上的仓库,
git clone username@host:/path/to/repository
三、工作流
本地仓库由git维护的三部分组成,第一个是工作目录,持有实际文件;第二个是缓存区(index),临时保存改动;第三个是HEAD,指向最近一次提交的位置
四、添加与提交
把改动后的文件先放到缓存区
git add <filename> git add *
实际提交改动
git commit -m "代码提交信息"
现在,改动已经提交到了HEAD,但是还没有到远端仓库
五、推送改动
改动文件已经在本地仓库的HEAD中了,提交到远端仓库
git push origin master //master可以换成要推送的任何分支
如果还没有克隆现有仓库,但是想要将仓库连接到某个远程服务器,可以使用
git remote add origin <server>
将改动推动到所添加的服务器上
六、分支
分支用来分类,在创建仓库时,master是默认分支,在其他分支上进行开发,完成后再将它们合并到主分支上
git checkout -b newbranch // 创建一个并切换到newbranch分支
git branch -d newbranch //删除该分支
除非将分支推送到远程仓库,不然该分支在本地,是不为他人所见的
git push origin <branch>
七、更新与合并
要更新本地仓库至最新改动,执行
git pull
以在本地目录中获取(fetch)并合并(merge)远端的改动
要合并其他分支到当前分支(如master),执行
git merge <branch>
这两种方法,git都会尝试自动合并改动。但是自动合并并非每次都能成功,可嫩会导致冲突(conflict)。这时就需要手动修改这些文件来合并这些冲突。改完后,执行如下命令将他们标记为合并成功(解决冲突之后,一定要git add.)
git add <filename>
在合并改动之前,可以查看暂存区的文件,如下
git diff <source_branch> <target_branch>
八、标签
在软件发布时创建标签,执行如下命令以创建一个1.0.0的标签,
git tag 1.0.0 1b2e1d63ff
1b2e1d63ff是想要标记的ID的前10位,可以如此获得该ID(也可以用前几位,只要它是唯一的)
git log
九、替换本地改动
如果写错了,可以使用如下命令替换掉本地改动
git checkout --<filename>
此命令会使用HEAD中的最新内容替换掉本地工作目录中的文件,而已添加到缓存区的改动,以及新文件,都不受影响
如果想要丢弃所有的本地改动与提交,可以到服务器上获取最新的版本并将本地主分支指向到它
git fetch origin
git reset --hard origin/master
合并工具:beyond compare
把远程分支merge到本地分支:
0.本地分支上git add . 然后git commit -m ""
1.在本地分支上git pull 远程分支
2.vscode解决冲突
3.git commit,进入unix界面,在上面写merge的commit,然后:wq