只有在本地库和远程库才有版本控制
后一个版本是基于前一个版本的,所以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 reflog 查看版本的信息git log查看版本的详细信息git reset --hard 要重置到的版本号不同的分支上存储着不同的代码。
分支存在的意义:线上代码的运行需要维护,维护的过程需要程序员进行代码的改和编写,这种时候不可能将停止线上的运行的代码以供程序员开发。一般是线上产品放在一个分支(多为master分支),程序员则在其他分支开发,当一版产品修改好之后再将开发好后的分支代码合并到master分支上。

本地的分支代码可以在编译器中查看,一般head指针指向那个分支,改编译器就显示的是哪个分支的代码

git branch 分支名 :创建分支git branch -v :查看分支git checkout 分支名:切换分支git checkout -b 分支名: 创建并切换到该分支git merge 分支名:把指定分支合并到当前分支上git branch -D 分支名 删除分支当两个分支合并的时候可能产生冲突。
冲突产生的原因:
合并分支时,两个分支在同一个文件的同一个位置有两套完全不同的修改。Git无法替我们决定使用哪一个。必须人为决定新代码内容。

当出现冲突的时候,需要:
要建立本地库和远程库的代码联系需要通过推送 (push) 和克隆(clone)拉取 (pull) 命令。
git push 远程库地址 分支名:推送 (精确到分支)git push 远程库地址 本地分支名:远程分支名)git pull 远程库地址 分支名:拉取最新代码 (精确到分支)git clone 远程库地址:克隆代码这里的远程地址都是http的地址。
当需要克隆的宣称仓库的地址太长的时候,我们可以为其创建一个别名方便下次拉取。
git remote -v:查看当前所有远程地址别名
git remote add 别名 远程地址:将远程地址添加为别名
创建完别名后当克隆、拉去和提交都可以使用该别名。
ssh免密登陆协议需要在用户名下生成.ssh文件。
生成方法:在需要生成的目录下,右键Git Bash Here,输入命令: ssh-keygen -t rsa -C 邮箱地址
-t rsa :是加密算法
-C 邮箱地址:描述信息,当前面目登陆协议是为谁准备的。
生成的.ssh文件夹有公钥和私钥,将公钥进行复制,复制到远程仓库中(不同的仓库位置可能不一样,可以自行查找)
赋值代码的时候远程仓库一般为我们提供两个地址:https地址和ssh地址,之前的克隆都是利用https的地址,如果使用ssh免密登陆之后就可以使用ssh地址进行代码的克隆。
项目提交的时候需要屏蔽一些文件的提交。这些文件一般是与项目的实际功能无关,不参与服务器上部署运行。把它们忽略掉能够屏蔽IDE工具之间的差异。
如何忽略这些文件?
创建忽略规则文件 XXXX.ignore
酱醋是要忽略的文件名写到该文件中即可
git pull origin dev:dev
git pull (git pull = git fetch + git merge),严格意义上 git fetch才是单纯的拉取代码,但是一般情况下拉取代码和合并代码经常一起使用,我们一般直接使用git pull,也拉取代码。
eg:
可以使用以下命令将远程分支拉取到本地:
git fetch origin 远程分支名:本地分支名
这将从远程仓库中拉取指定的远程分支到本地并创建一个本地分支。例如,要将远程分支develop拉取到本地并创建一个名为dev的本地分支,可以运行以下命令:
git fetch origin develop:dev
注意,这将只拉取远程分支的快照,不会自动创建任何本地分支的跟踪分支关系。如果需要将本地分支与远程分支关联起来,可以尝试运行以下命令:
git branch --set-upstream-to=origin/远程分支名 本地分支名
这个命令将本地分支与远程分支建立关联关系,并允许您将更改推送到该远程分支。
git push dev:origin/dev
如果本地分支和远程库分支名字一样可以直接使用 git push
加了-a,在 commit 的时候,能帮你省一步 git add ,但也只是对修改和删除文件有效, 新文件还是要 git add,不然就是 untracked 状态
git pull -f 是强制拉取远程代码到本地并合并,如果本地修改的代码没有提交会被覆盖;但是如果本地代码已经提交,是不会被覆盖的,只会在有冲突的代码部分直接使用远程的代码覆盖本地的代码。就是说使用git pull -f 也没有办法保证本地代码和远程代码完全一致。想要完全一致可以先试用 reset 命令之后再使用git pull。
git pull 对于产生的冲突需要我们手动合并判断
git pull 对于产生的冲突直接使用远程的代码覆盖本地的代码