赞
踩
只有在本地库和远程库才有版本控制
后一个版本是基于前一个版本的,所以1和3版本之间
git config --global user.name 用户名
设置用户签名git config --global user.email 邮箱
设置用户签名git init
使本地库关联git(生成.git文件)git status
查看本地库的git状态,(当前分支,commit,wait commit)git add 文件名
将修改的文件添加到暂存区git rm --catched 文件名
将文件从暂存区删除git add .
添加所有修改的文件到暂存区git commit -m "本次版本描述信息" 文件名
提交代码到本地库,生成相应的版本号git commit -a
加了-a,在 commit 的时候,能帮你省一步 git add ,但也只是对修改和删除文件有效, 新文件还是要 git add,不然就是 untracked 状态git commit --amend -m "新的描述信息"
:在执行了commit
并且还没有执行push
操作的时候可以使用该命令修改之前提交的描述信息。git reflog
查看版本的信息git log
查看版本的详细信息git reset --hard 要重置到的版本号
不同的分支上存储着不同的代码。
分支存在的意义:线上代码的运行需要维护,维护的过程需要程序员进行代码的改和编写,这种时候不可能将停止线上的运行的代码以供程序员开发。一般是线上产品放在一个分支(多为master分支),程序员则在其他分支开发,当一版产品修改好之后再将开发好后的分支代码合并到master分支上。
本地的分支代码可以在编译器中查看,head指针指向那个分支,改编译器就显示的是哪个分支的代码
git branch 分支名
:创建分支git branch -m 新分支名
:可以修改当前分支的名称git branch -v
:查看所有分支git checkout 分支名
:切换分支git checkout -b 分支名
: 创建并切换到该分支git merge 分支名
:把指定分支合并到当前分支上git branch -D 分支名
删除分支当两个分支合并的时候可能产生冲突。
冲突产生的原因:
合并分支时,两个分支在同一个文件的同一个位置有两套完全不同的修改。Git无法替我们决定使用哪一个。必须人为决定新代码内容。
当出现冲突的时候,需要:
1. 拉取远程分支到本地:
命令是: git pull origin 远程分支名:本地分支名
:本地分支名
可以省略,即git pull origin 远程分支名
origin 远程分支名:本地分支名
可以省略,即git pull
eg:拉取远程dev的代码到本地dev分支
git pull origin dev:dev
2. git fetch 单纯的拉取代码
git pull = git fetch + git merge
,严格意义上 git fetch
才是单纯的拉取代码,但是一般情况下拉取代码和合并代码经常一起使用,我们一般直接使用git pull拉取代码。
git fetch origin 远程分支名:本地分支名
,这将从远程仓库中拉取指定的远程分支到本地并创建一个本地分支。eg:要将远程分支develop拉取到本地并创建一个名为dev的本地分支,可以运行以下命令:
git fetch origin develop:dev
3. 建立本地分支和远程分支的联系
git pull 和 git fetch 都将只拉取远程分支的快照,不会自动创建任何本地分支的跟踪分支关系。如果需要将本地分支与远程分支关联起来,可以尝试运行以下命令:
git branch --set-upstream-to=origin/远程分支名 本地分支名
这个命令将本地分支与远程分支建立关联关系,并允许您将更改推送到该远程分支。
也可以在推送的时候建立联系:
git push --set-upstream origin 本地分支名:远程分支名
4. 拉取远程分支同时建立和远程分支的联系
git checkout -b 本地分支名 origin/远程分支名
使用这种方式会在本地仓库新建分支xxx,并自动切换到新建的分支xxx,远程分支的代码也拉取到了本地分支xxx中。采用这种方法建立的本地分支会和远程分支建立映射关系。
5. 强制拉取
添加 -f参数即可:git pull origin 远程分支名:本地分支名 -f
,
git pull -f
是强制拉取远程代码到本地并合并,如果本地修改的代码没有提交会
被覆盖git pull -f
也没有办法保证本地代码和远程代码完全一致。想要完全一致可以先试用 reset 命令之后再使用git pull。git pull
对于产生的冲突需要我们手动合并判断git pull -f
对于产生的冲突直接使用远程的代码覆盖本地的代码1. 推送本地分支到远程:
命令是: git push origin 本地分支名:远程分支名
本地分支名可以和远程名不一样
如果本地分支就是使用当前的分支,命令后面的:本地分支名
可以省略,即git push origin 远程分支名
如果本地分支就是使用当前的分支,并且本地分支和远程分支同命,命令后面的origin 远程分支名:本地分支名
可以省略,即git push
eg: 推送本地dev到远程dev
git push origin dev:dev
2. 强制推送本地分支到远程:
添加 -f参数即可:git push origin 本地分支名:远程分支名 -f
,本地分支的代码会覆盖该远程分支的内容,也可能会覆盖其他人提交的代码内容。
所以提交遇到冲突的时候我们需要先 git pull
一下,先在本地合并一下其他人的代码,之后再git push
提交代码,尽量不要使用强制推送命令。
git
1. 复制代码
git clone 远程库地址
:克隆代码
clone会做如下操作:1. 拉取代码。2. 初始化本地仓库。3. 默认创建远程仓库的别名为origin
2.复制代码到指定分支
默认情况下会复制代码仓库的默认分支(一般是master)到本地,本地的分支名和远程的默认分支名对应。
当然我们也可以克隆制定分支到本地:git clone -b 分支名 远程库地址
当我们第一次将代码提交到远程仓库的时候,我们可以为其创建一个别名方便下次拉取。
git remote -v
:查看当前所有远程地址别名
git remote add 别名 远程地址
:将远程地址添加为别名
创建完别名后当克隆、拉去和提交都可以使用该别名。
git remote rename old_name new_name
:可以修改远程仓库的别名
ssh免密登陆协议需要在用户名下生成.ssh
文件。
生成方法:在需要生成的目录下,右键Git Bash Here,输入命令: ssh-keygen -t rsa -C 邮箱地址
-t rsa
:是加密算法
-C 邮箱地址
:描述信息,当前面目登陆协议是为谁准备的。
生成的.ssh
文件夹有公钥和私钥,将公钥进行复制,复制到远程仓库中(不同的仓库位置可能不一样,可以自行查找)
赋值代码的时候远程仓库一般为我们提供两个地址:https地址和ssh地址,之前的克隆都是利用https的地址,如果使用ssh免密登陆之后就可以使用ssh地址进行代码的克隆。
项目提交的时候需要屏蔽一些文件的提交。这些文件一般是与项目的实际功能无关,不参与服务器上部署运行。把它们忽略掉能够屏蔽IDE工具之间的差异。
忽略文件一般是 .gitignore
eg:
# Logs logs *.log npm-debug.log* yarn-debug.log* yarn-error.log* pnpm-debug.log* lerna-debug.log* node_modules .DS_Store dist dist-ssr coverage *.local /cypress/videos/ /cypress/screenshots/ # Editor directories and files .vscode/* !.vscode/extensions.json .idea *.suo *.ntvs* *.njsproj *.sln *.sw?
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。