git 一共分为三个区
工作区 ->暂存区 ->版本区
工作区:就是我们平时写代码(本地)的区域(git status查看状态 如果是红色的 表明代码在工作区)
暂存区:就是由工作区(本地)通过git add 上来的就是暂存区(git status查看状态 如果是绿色的 表明代码在暂存区)
本地版本区:就是由暂存区通过git commit 上来的就是版本区
远端版本区:就是版本区通过git push就是推送到远端
总结:
代码流程:工作区->暂存区->本地版本区->远端版本区
git 落后解决方式
方式一:
1.落后谁拉谁。git pull --rebase origin develop/xxx
2.存在代码冲突解决代码冲突
3.git add .(可能不要使用 具体查看git status)
4.git rebase --continue(这个也是具体用如果你的个人分支名字后面存在REBASE就使用这个命令) 注意先git status 在git add 最后在git rebase --continue
5.git push -f
方式二:
1.先切换为落后的分支ttt(xxx请求合并ttt(落后))
2.拉一下远端落后的分支git pull
3.切回本地提交代码的分支xxx
4.git merge 本地落后的分支(git merge ttt)
5.有冲突解决冲突
6.git push -f
常用的git 命令
git status 查看状态
git add . 指的是提交所有的文件
git add xxx文件名 指的是提交某个文件
git checkout . 用的场景是比如你在工作区修改了文件a ,文件b 等。然后你又不想要这个文件的改动的 你就直接使用这个git checkout ., 就能撤销改动一键恢复到改动前
git checkout 文件名 用的场景是比如你在工作区修改了文件a ,然后你又不想要这个文件的改动的 你就直接使用这个git checkout 文件名, 就能撤销改动一键恢复到改动前
git clean -xdf 比如你新增了很多个文件 然后你都不需要了 你就使用这个 但是需要慎用,会删除掉所有新增的文件
git branch 查看当前分支
git branch -a 查看所有分支
git checkout -b 创建并且切换分支
git checkout 切换分支 分支名
git log 查看提交日志
git reset --soft commitID 本地版本区回滚到暂存区 (commitid 是通过git log 获取 这个commitID为你最新提交的上一个commitID)
git restore --staged xxx文件名 暂存区回滚到本地版本区
git diff只能查看工作区代码的变化
git diff --staged 如果想看暂存区的代码改动
git show <commit_id 如果commit以后还想看改动就用
git cherry-pick 这个命令就是其他的分支的代码已经上库未合并 然后新建分支 直接用这个命令 就可以把分支a 的提交到分支b上面来
比如分支a 上面提交c改动 然后b 分支上也想要a分支的改动,首先做的操作是
1.git checkout -a
2.git log 查看分支a 改动的c commitID
3.在切换回git checkout b
4.git cherry-pick 分支commitID
git cherry-pick 多个提交 直接这样git cherry-pick commitid^...coimmitid2 可能会出现这样的报错 error commit 某个commitID is a merge but no -m option was given,接下来你需要做的事情是先使用git cherry-pick soft 回滚 ,然后再使用git cherry-pick -m 1 commitid^...coimmitid2.接下来会提示你说为空什么的 你就使用这个git cherry-pick skip ,一直使用git cherry-pick skip,直到不再提示为空,就证明你已经把其他分支的提交合并并commit了
防止代码落后的操作(先拉取最新代码,在提交)
第一次提交
1.先git stash 暂存代码(就是可以先把你的改动保存起来,暂时恢复到没有任何改动的情况)
2.git pull 拉取主分支的最新代码(前提是你在主分支上面比如master )
3.最后在git stash pop(就是把你之前的改动在拿出来 )
4.创建并且切换分支 git checkout -b 分支名
5.git add .
6.git commit -am '[FIX]TD号 描述做的操作'
7.git push
第二次提交 上次提交有误,不修改评论直接重新提交,最后显示提交次数也是只为一次
1.git add .
2.git commit -C head -a --amend(超级无敌好用这个 最后显示提交次数也是只为一次 )
3.git push -f 上传修改后的提交(第二次push一定要加f 不然推不上去)
多个commit提交需要合并成一次提交 ,有时候如果不能使用这个git commit -C head -a --amend,只能手动操作
1.git log 查看你想最近提交的上一个commitid1
2.git reset --soft commitid1
3.git reset
4.git commit -am '[xxx]描述信息'
5.git push -f
只要是你在pycharm里打开这目录,他就会有.idea这个文件夹
.gitignore是告诉git我要忽略对某个文件夹的跟踪
.idea 是pycharm生成的
修改分支名
1.git branch -m 老分支名字 新分支名字
2.git push origin: 老的分支名字(将本地分支的远程分支删除)
3.git push --set-upstream origin 新分支名字(将改名后的本地分支推送到远程,并将本地分支与之关联)
修改git commit描述信息,不一定回滚操作在提交
1.点击idea 左下角Git
2.点击Log:all
3.找到自己的提交记录,点击鼠标右键
4.点击Edit Commit Message进行修改
6.git push -f