git命令原理
git命令总结
- git 配置相关
git config --list # 查看config配置
git config user.name #查看配置用户名
git config user.email #查看配置的邮箱
git config --global user.name “xxx” #设置git用户名
git config --global user.eamil “xxx” #设置git邮箱
git credential-manager uninstall #清除缓存的用户名和密码
- 仓库操作
git init #新建git仓库
git clone #克隆仓库
- 增加/删除文件
git add [file1] [file2] #添加文件到暂存区
git add . #添加所有改动文件到暂存区
git rm [file1] [file2] #删除工作去文件,并且将删除放入暂存区
git rm --cached [file] #停止追踪指定文件,该文件会保留在保存区
git mv [file-original] [file-renamed] #改名文件,并将文件改名放入暂存区
- 代码提交
git commit -m [message] #提交文件从暂存区到仓库
git commit [file1] [file2] … -m [message] #提交指定文件到仓库区
git commit --amend -m [message] #将改动追加到最后一次提交
- 分支操作
git branch #列出所有本地分支
git branch -r #列出所有远程分支
git branch -a #列出所有分支
git branch [branch-name] #新建一个分支
git checkout [branch-name] #从当前分支切换到指定分支
git branch - #切换到上一个分支
git branch --track [branch] [remote-branch] #新建一个分支与指定的远程分支建立追踪关系
git branch --set-upstream [branch] [remote-branch] #建立追踪关系,在现有分支和指定的远程分支之间
git merge [branch] #合并指定分支到当前分支
git cherry-pick [commit] #选择一个commit,合并到当前分支
git branch -d [branch-name] #删除分支
git push origin --delete [branch-name] #删除远程分支
- 查看信息
git status #查看暂存区的状态
git log #查看当前分支的提交记录
git diff [commit-id] #查看工作区和最新一次的区别
git show #显示文件的改动
- 远程操作
git fetch [remote] #下载远程仓库的所有改动
git remote -v #显示所有远程仓库
git remote add [name] [url] #增加一个远程仓库
git pull [remote] [branch] #拉取远程仓库变动并并与本地仓库合并
git push [remote] [branch] #上传本地指定分支到远程仓库
- 撤销
git checkout [file] #撤销对文件的改动
git checkout . #撤销所有文件的改动
git reset [file] #撤销文件的改动
git reset [commit-id] # 重置到指定提交点,之后的提交全部消失
git revert [commit-id] #新建一次提交来撤销之后的提交
git stash #将未提交的记录移除,稍后提交
git stash pop #移出最新一次提交
- 暂存区操作
git stash #将本地的改动暂存起来
git stash save “xxx” #将本地的改动暂存起来,并添加记录信息方便查找
git stash pop #应用最近一次的暂存的修改,并删除暂存的记录
git stash apply # 应用某个存储,但不会把存储从存储列表中删除,默认使用第一个存储,即 stash@{0},如果要使用其他个,git stash apply stash@{$num} 。
git stash list # 查看 stash 有哪些存储
git stash clear #删除所有缓存的 stash
实践操作
- 完整的提交过程
git statsu
git add [file1]…[filen] | git add .
git commit -m ‘xxx’
git pull
git push
- 拉取仓库中远程指定分支到本地并创建本地分支名称
git fetch origin [remote-branch-name]:[local-branch-name]
- 迁移仓库在新仓库上保留旧仓库的提交记录
git clone --bare 【旧仓库地址】
git push --mirror 【新仓库地址】
- 本地文件夹推送到远程仓库
git init
git remote add origin 远程仓库地址
git add .
git commit -m “Initial commit”
git push -u origin master
- 删除本地分支
git branch -d xxx (如果分支包含未合并的更改和未推送的提交,则该-d标志将不允许删除本地分支)
git branch -D xxx (-D带有大写-- delete --force字母D(它是 的别名)的标志会强行删除本地分支,无论其合并状态如何)
- 删除远程分支
git push origin -d xxx (删除远程分支的名称)
撤销本地commit的操作
- 撤销commit 提交记录,代码改变仍然保留
git reset --soft HEAD^
- 表示撤销回到n次的版本,例如n为1表示返回到上一次的提交状态
git reset --soft HEAD~n
- git reset --soft HEAD^ 和git reset --hard HEAD^的区别
soft参数表示不删除工作区的代码,撤销commit, 保留git add .操作;–hard表示删除工作空间代码,撤销git add . 操作, 在完成这些操作之后恢复到上一次提交的状态(改动的代码没有了)