一、git常用命令
1、git fetch 取回所有更新分支信息
2、git branch -a 查看所有分支信息
3、git branch 查看当前分支信息
4、git checkout “分支名” 切换分支
5、git init 初始化git仓库
6、git clone “ 克隆地址 ” 拉取项目
7、git pull 拉取代码
8、git status 查看修改的文件
git status -s / git status --short 查看更加简洁的状态信息
9、git diff 显示文件修改的差异
10、git add . 添加所有修改的文件到暂存区
11、git commit -m “提交信息” 提交修改命令
12、git commit -a -m '提交信息' 将add和commit命令结合使用
13、git push 将本地修改推送到git仓库
14、git log 查询git提交历史
15、git show [commit] 显示某次提交的详细内容
16、git rm 从版本库中删除文件
17、git mv 移动或重命名文件
18、git config:用于修改git配置文件
git config --global user.name "bestxx" 全局修改当前git提交时的用户
git config --global user.email "email" 全局修改当前git提交时的用户邮箱
git config --global alias.ci commit 配置命令别名(后续就可以直接通过git ci -m "desc"来进行使用commit提交命令)
19、git reset 版本回退
git reset --soft 用于回退到某个版本
git reset --hard 撤销工作区中所有未提交的修改内容,将暂存区和工作区都回到上一次版本,并删除之前的所有信息提交(谨慎使用)
20、git remote 查看远程服务器
git remote -v/-verbose 查看远程服务器并列出对应的url
git remote add <remote-name> <url> 添加远程仓库
git remote rename <old-name> <new-name> 重命名远程仓库
git remote set-url <remote-name> <new-remote-url> 修改远程仓库url
git remote remove <remote-name> 移除某个远程仓库
git remote show <remote-name> 显示指定远程仓库的详细信息,包括url和跟踪分支
二、git标签
1、git tag <tag-name>/git tag <tag-name> -m "描述信息" 创建git标签
2、git push origin <tag-name>/git push origin --tags 在push到远程仓库时,也添加对应的标签
3、git tag -d <tag-name> / Deleted tag <tag-name> 删除本地仓库上的标签
4、git push origin --delete <tag-name> 删除远程仓库中的标签
三、git分支
1、git branch 查看分支
2、git branch -v 查看分支,同时展示每个分支的最后一次提交
3、git branch <branch-name> 创建分支
4、git checkout <branch-name> 切换分支
5、git checkout -b <branch-name> 创建分支并切换至该分支
6、git merge <branch-name> 合并分支(将<branch-name>分支合并到当前分支上)
已经合并的分支我们不在需要时,可以将其移除掉
git branch --merged 查看所有合并到当前分支中的分支
git branch --no-merged 查看所有没合并到当前分支中的分支
7、git branch -d <branch-name> 删除某一个分支
8、git branch -D <branch-name> 强制删除某一个分支
四、git远程分支
远程分支也是一种分支结构(以<remote>/<branch>的形式命名的)
1、git branch -r 查看远程分支
2、git push origin <branch> 将本地分支推送到远程仓库
3、git push origin --delete <branch> 删除远程分支
4、git branch --set-upstream-to=origin/<branch-name> <branch-name> 将本地分支与远程分支进行关联
五、git rebase用法(变基)
1、git rebase <branch-name> 使当前分支的基移至某一个分支(前提:只能在当前分支的基础上向前移,不能向后移,即 旧向新rebase)
rebase和merge的选择
merge:用于记录git的所有历史,那么分支的错综复杂也全部记录了下来
rebase:用于简化历史记录,将两个分支的历史简化,整个历史更加简化
注意:rebase有一条黄金法则,就是“永远不要在主分支上使用rebase”因为rebase会将git历史给简化,所以为了避免主分支master/main的历史在提交时不会有太大变化,不要在主分支上进行rebase。
六、冲突解决
1、未使用git add缓存代码
git checkout --fileoathname(放弃修改文件名)
git checkout . 放弃所有文件修改
2、已使用git add缓存代码
git reset HEAD filepathname(放弃指定文件的缓存)
git reset HEAD . 放弃所有缓存文件
3、已经使用git commit提交了代码
git reset --hard HEAD 回退到上一次commit状态
git reset --hard commit id 回退到任意版本