init
此内容尚不支持你的语言。
install git
Section titled “install git”windows
安装后
鼠标右键打开Git Bash

生成公钥私钥
Section titled “生成公钥私钥”ssh-keygen -t rsa -C "127655233@qq.com"全程entersssh-keygen -t rsa -C "127655233@qq.com"Generating public/private rsa key pair.Enter file in which to save the key (/c/Users/aa/.ssh/id_rsa):/c/Users/aa/.ssh/id_rsa already exists.Overwrite (y/n)? yEnter passphrase (empty for no passphrase):Enter same passphrase again:Your identification has been saved in /c/Users/aa/.ssh/id_rsaYour public key has been saved in /c/Users/aa/.ssh/id_rsa.pubThe key fingerprint is:SHA256:TjeIOfbFjXdZyI/DvOmbv0N45weCa2sI6ExewJjproA 127655233@qq.comThe key's randomart image is:+---[RSA 3072]----+| || . . || = o .|| + o o o o o = || . o= S *.o O .||. . o.o= o.o.o.*.||E. = . .o. . .=o.||. . + . + . oo||.. o.. ++=|+----[SHA256]-----+

打开这个文件

复制


git clone https://gitee.com/liqianglog/django-vue-admin.git #后面是发现的一个表面不错的项目新建仓库

.gitignore

看到这个,这里表示不上传·这个文件
编辑.gitignore
使其上传时忽略.ieda

git clone https://gitee.com/nahida-aa/blog.gitgit command
Section titled “git command”进入有.git文件的目录

if 一个人开发一个分支就行
合作开发时
一个小组一个分支
习惯
开发时用dev分支
发布时用master分支
git branch # 显示分支git branch 分支名称 # 创建分支git branch
git checkout dev
切换回来
git checkout master
推送代码到服务器
Section titled “推送代码到服务器”git push origin dev5c602bb631e9e10435b88f26fc1f90d2gitee账号nahida-aa密码JQK135147xa
跟踪(同步)分支
Section titled “跟踪(同步)分支”git branch --set-upstream-to=origin/dev dev不过同步,不会改变云端
git branch -d aa继续搭建项目
Section titled “继续搭建项目”在blog目录下创建项目
django-admin startproject blog也可以将之前的项目文件复制过来

切换到master分支,提交(推送代码)
git branch mastergit add ./git statusgit commit -m "project init"git push origin/master #master可省略 err应该是git push origin masterorgit push origin/maste
err
$ git push origin/masterfatal: 'origin/master' does not appear to be a git repositoryfatal: Could not read from remote repository.
Please make sure you have the correct access rightsand the repository exists.git branch --set-upstream-to=origin/master貌似并未解决

其他分支不会有
将master的内容合并到dev
Section titled “将master的内容合并到dev”git checkout devgit branch --set-upstream-to=origin/dev devgit merge mastergit add ./git statusgit push将dev合并到自己的分支(aa)
之后init完成
演示在本地切换分支看到不同文件
Section titled “演示在本地切换分支看到不同文件”git checkout aa
/blog/blog/settings.py
...# git演示
切换成dev应该会消失,但是没有消失?
先切换回aa
git checkout aagit add ./git status
git commit -m "demo"git push origin aaorgit push
git checkout dev
执行完后刚刚写的代码瞬间消失了
git checkout aa
切换回来就又有了
下班时将aa分支的修改提交到dev
Section titled “下班时将aa分支的修改提交到dev”git checkout devgit merge aa
可以看到在本地的dev出现了刚刚的修改
此时云端的dev

并未修改
git add ./git statusgit pull #可能在我提交前别人也提交了一些其他代码git push
假设bb与我协同开发
Section titled “假设bb与我协同开发”D:\a_note\git\projects\blog_bb
git clone https://gitee.com/nahida-aa/blog.git
cd bloggit branch devgit branch bb
git checkout devgit push origin dev # if 云端没有devgit branch --set-upstream-to=origin/dev devgit pullgit push origin dev
git checkout bbgit push origin bb # if 云端没有bbgit branch --set-upstream-to=origin/bb bb#git pull#git push origin bb
bb组提交到bb分支云端
Section titled “bb组提交到bb分支云端”git add ./git statusgit commit -m "bb_2024_03_03"git push


此时bb的代码还未提交到dev分支哦
bb组将本地bb合并到本地dev,再将本地dev提交到云端dev
Section titled “bb组将本地bb合并到本地dev,再将本地dev提交到云端dev”git checkout devgit merge bbgit pullgit push
此时dev也有了
bb开发组完工
此时aa组也将准备下班
aa组的工作如下
git checkout aa
git add ./git statusgit commit -m "aa_3.3"git pullgit push
git checkout devgit merge aagit pull #此时必须,因为在之前bb提交修改过devgit push
第二天开工时(以bb为例)
Section titled “第二天开工时(以bb为例)”
先从dev pull最新的code
git checkout devgit pull #将bb的本地dev弄成最新的git checkout bbgit merge dev 将本地dev合并过来

暂存区的存在便于回退等修改
仓库区的存在便于记录操作(备注)
工作区与暂存区
Section titled “工作区与暂存区”
以开始工作为例
init
git checkout devgit pull #将bb的本地dev弄成最新的git checkout aagit merge dev 将本地dev合并过来在本地修改code

M :{modified已修改}U :{未跟踪的(新建的)}
On branch aaYour branch is ahead of 'origin/aa' by 11 commits."你的分支比origin/aa提交多11次" (use "git push" to publish your local commits)
Changes not staged for commit:"更改暂未提交" (use "git add <file>..." to update what will be committed) '' (use "git restore <file>..." to discard changes in working directory) '使用"git add <file>..."丢弃工作目录中的修改' modified: aa.txt
Untracked files:'未跟踪的文件们' (use "git add <file>..." to include in what will be committed) '使用" git add < file > ..."来包含将要提交的内容' aa_1.txt
no changes added to commit (use "git add" and/or "git commit -a")'没有为提交添加更改(使用“ git add”和/或“ git commit-a”)'放到暂存区
git add ./git status
A :{已添加索引}M :{已修改索引}On branch aaYour branch is ahead of 'origin/aa' by 11 commits. (use "git push" to publish your local commits)
Changes to be committed: (use "git restore --staged <file>..." to unstage) modified: aa.txt new file: aa_1.txt提交到仓库区并备注
git commit -m "v_demo"推送(同步)到server
git push删除工作区的文件

git rm aa_1.txt # 删除并将更改添加到暂存区
已删除索引,已删除 (索引貌似指数据库中的索引才怪)索引是暂存区的哦(.git/index)这个表示存在已删除这个index添加到暂存区
git add ./ #这步貌似不需要(确实不需要rm/add都是将更改存放在暂存区)发现删错了
git reset HEAD aa_1.txt #~=git restore --staged aa_1.txt #恢复暂存区
git checkout -- aa_1.txt~=git restore aa_1.txtif 在资源管理器删除文件

git restore aa.txt~=git checkout -- aa.txtif 将删除操作提交到本地仓库
git rm aa_1.txt #rm and-> 暂存区git commit -m 'rm opear' # -> 本地仓库想要恢复
git reflog # 查看版本记录
回退(重置)版本
git reset f0c7d8a #回退到上一版本,保留工作区的变化,丢弃暂存区,那么此时工作区显示已经删了,暂存是上一版的显示=git reset HEAD^if 推送到server
git statusgit add ./git statusgit commit -m 'test:提交到服务器再回退' #提交git pullgit push #推送(同步)
看到aa_1.txt已被删除

17ec0438232fda28365e4d7fcdef994ef98528a2回滚办法是强制推送进行覆盖
先回退本地分支
git reset HEAD^紧接着强制推送到远程分支
git push -f
注意:本地分支back后,版本将落后远程分支,必须使用强制推送覆盖远程分支,否则无法推送到远程分支
暂存区与仓库区
Section titled “暂存区与仓库区”
提交到仓库区并备注
git commit -m "v_demo"git status
本地与server
Section titled “本地与server”工作区、暂存区、仓库区都在本地

推送(同步)到server
git pushgit status

common
Section titled “common”git gitclone git地址 #克隆项目git add 文件或目录 #添加git rm 文件或目录 #删除暂存区文件git checkout -- 文件 # 恢复文件git commit -m'备注说明' #提交到仓库区git reset HEAD或版本号 # 回退版本git reflog #查看版本日志git log #查看详细日志git status #查看暂存区文件git branch 分支名称 #创建分支git branch --set-upstream-to=origin/分支名 称分支名称 #跟踪分支git checkout 分支名称 # 切换分支git checkout -bv分支名称 origin/分支名称 #创建分支同时切换到新分支git diff 版本1 版本2 #对比两个版本的不同git merge 分支名称 #合并分支代码git pull #拉取服务器代码git push origin 分支名称#推送代码到服务器git tag 标签名称 # 打标签git reset回退版本
Section titled “git reset回退版本”back to V1?
git reset V1三种模式git reset --soft v #back to v 保留工作区和暂存区的内容git reset --hard v #..丢弃工作区和暂存区的内容git reset --mixed v #..保存工作区丢弃暂存区 --mixed也是此reset的defaultgit log
Section titled “git log”git log --oneline #查看版本提交记录git reflog
Section titled “git reflog”查看所有的操作记录
git ls-files
Section titled “git ls-files”查看暂存区文件