git version

 git --version

git clone(git 克隆)

 git clone 项目路径

git status

用来查看目前在哪一个分支,当前分支跟远端分支是否同步,还有哪些文件进行了修改,有没有加入暂存区,有没有提交

 git --status

git add

 git add . :将所有的文件添加到暂存区

git restore –staged

将文件从暂存区取出来

 git restore --staged <test5.py>

git commit -am

自动把已经由git管理的文件添加到暂存区

 git commit -am"updata test5 test6"

git pull

从远端拉取更新

 git pull --rebase 将你的提交暂时放在一边,然后拉取远端仓库的提交,再将你的提交挂在后面

修改git设置,让使用git pull的时候默认使用rebase的方式

 git config pull.rebase true

删除文件

 git rm 文件名
 git commit -m"xxxxx"

git commit

提交改变

 git commit -m"xxxxx"

移动文件

 git mv 文件名 路径名

重命名文件

 git mv 文件名 新文件名

git log

查看所有的提交记录

 git log
 点击q退出

git reset

回退到哪一个的commit

 git reset --mixed commit_ID(上一次的Commit id)舍弃掉commit_id后面的所有的commit_id
 git push -f强制推送

git restore

 git restore 文件名
 可以把文件的修改给丢弃了

git show

 git show xxxxx(commitID)
 显示commit中的详细信息

git revert(推荐在多人集成分支上)

 git revert xxxxx(commitID)
 撤销上一次commit
 然后按:wq!
 在命令行中使用git push推送远程

git commit –amend

 修改上一次的commit记录,amend只能对最后一次提交生效
 git commit --amend

git branch(查看分支)

 查看所有的本地分支
 git branch
 查看远端分支
 git branch -a

git checkout -b(创建分支)

 创建分支
 git checkout -b 分支名 (基于本地的当前分支创建)
 git push --set-upstream origin xxxxx(分支名)
 把本地的xxxx分支名在远端进行关联起来

git switch

切换分支

 git switch xxx(分支名)

git branch -d (删除分支)

 git branch -d xxxx(分支名)
 如果分支没有合并,是不能使用-d删除的,需要使用-D
 ​
 删除远程分支
 git push origin --delete xxxx(分支名)

如何将远端的分支拉取到本地

同步远端分支

 git fetch
 git checkout xxx(分支名)
 让本地当前分支变成xxx分支

git merge合并分支

 将main分支合并到xxx分支
 git switch xxx
 git merge main
 ​
 远端合并分支
 git merge origin/main

git rebase

 先切换到接受合并的分支
 git switch xxxx(分支名)
 查看分支状态
 git status
 将Main分支合并到xxxx分支
 git rebase main

比较分支

提交比较

 main分支有而xxxx分支上没有(作比较)
 git log xxxx..main
 ​
 xxxx分支有的提交而main分支没有的,再加上main分支有的,xxxx分支没有的提交
 git loh main...xxxx

文件比较

 比较文件不同
 git diff xxxx..main

git merge –squash

将多余的分支合并到不同的分支中

 首先切换到合并的分支
 git switch xxxx
 将feature2分支squash merge进feature分支
 git merge --squash feature2
 git commit -m"xxxxxxx"
 发布到远端
 git push

rebase解决冲突

 先修改文件解决冲突
 添加暂存区
 git add 文件名
 git rebase --continue

git cherry-pick合并分支

 先切换到接受合并的main分支
 git switch main
 git cherry-pick 想要合并的id
 发布到远端
 git push

git diff比较

 显示工作目录跟暂存区的差异
 git diff

比较暂存区跟本地分支的区别

 git diff --staged

比较工作目录和本地分支的差异

 git diff HEAD   

解决Pull requests冲突

 先把冲突解决好再pull request
 先将main分支合并到feature分支
 get merge main
 再到文件中修改代码解决冲突
 git add .
 git commit -m"xxxx"
 git push

git stash

 存储stash
 git stash
 查看存储过的stash
 git stash list
 将工作区和暂存区的修改全部stash起来,使用-a就不要求文件经过暂存区了
 git stash -a
 ​
 ​
 取出stash
 git stash list
 取出stash,不删除stash
 git stash apply 'stash名字'
 删除git stash
 git stash drop 'stash名字'
 ​
 git stash pop 'stash名字'

git tag(打印tag)

 在本地分支的当前位置打一个tag,tag是不能重名的
 git tag V1.0.0

git push –tag

将tag push推送到远端

 git push --tag

git tag -d删除tag

 删除本地tag
 git tag -d xxxx(tag名字)
 ​
 删除远端tag
 git push origin --delete xxxx(tag名字)

#