前言
我以前一直使用
vs
和sourcetree
管理git
,虽然sourcetree
用起来也很爽,但是随着本地的源代码越来越多,sourcetree
用起来也越来越力不从心。最近刚好重装系统,于是我只安装了git
客户端 ,强迫自己使用git
命令,感觉工作效率提升了不少,顺便总结了一些常用的git
命令。
- 好用的
cmder
- 真香 。。。
- 配置
SSH
秘钥- 这玩意配置一次长久使用,没必要记忆
- 打开
Git Bash
查看电脑上是否已经存在SSH
密钥输入 cd ~/.ssh
- 创建新的
ssh key
: 输入ssh-keygen -t rsa -C "[email protected]"
执行这条命令会如上图提示文件保存路径,可以直接按Enter
github or gitlab
配置ssh key
- 用记事本打开
.ssh
目录下的id_rsa.pub
文件,复制ssh key
到github : On the GitHub site Click “Account Settings” > Click “SSH Keys” > Click “Add SSH key”
- 用记事本打开
- 测试
ssh
链接github
- 输入
ssh -T [email protected]
,出现Successfully
就 OK
- 输入
- 设置自己的
git
信息git config --global user.name "Firstname Lastname"
此处 name 可修改也不是用于登录 github 的登录名git config --global user.email "[email protected]"
git config --list
查看自己的git
信息
常用命令
step1
本地获取远程代码git clone xx.git
step2
查看分支和操作分支git branch
列出本地所有分支git branch -a
列出所有分支,包含远程分支git checkout master
切换到master
分支git checkout -b test origin/test
在本地创建指定远程分支origin/test
在本地的副本git checkout tag-name
选择指定tag
, 工作中用的少git pull
只更新当前分支git pull origin branch : branch
将远程分支合并至指定分支git pull origin branch
将远程分支合并至当前选中分支
git remote update origin --prune
拉取更新远程分支列表git branch -d <branch_name>
删除分支git branch -D <branch_name>
强制删除分支
step3
签入变更集git status
查看本地文件状态,此命令会列出所有变更文件git add .
暂存所有更新git commit -m "info"
从缓存更新到本地仓库git push
推送本地变更git push origin master
提交远程仓库git push -f origin master
加入-f参数,强制提交,远程端将强制跟新到reset版本push
报错,需要取消 分支保护选项Settings => Repository => Protected Branches => Unprotect
- 版本回退完毕后,在
gitlab
项目设置,protected branches
里设置回master
的protected
step4
代码撤销git checkout .
撤销本地修改git clean -f
git clean -nf
删除untracked files
git clean -fd
git clean -nfd
连untracked
的目录也一起删掉git clean -xfd
git clean -nxfd
连gitignore
的untrack
文件/目录也一起删掉- 在用上述
git clean
前,加上-n
参数来先看看会删掉哪些文件,防止重要文件被误删 git rm -r --cached "target/ WebContent/"
target/ WebContent/
是不需要提交的目录git rm --cached <FILENAME>
如果.gitignore
忽略规则创建于文件提交代码库之后,则.gitignore
规则不会影响目前所提交的文件(不会自动把文件从服务器端删除掉), 需要手动删除,<FILENAME>
即为要移除的文件全名。- 执行命令后,需要执行
git push
命令
step5
代码合并git merge <name>
合并指定branch
git merge <name> --squash
- 将
branch
下所有变更统一合并到当前branch
。真香。
- 将
- 其他
git diff origin <master>
比较当前分支和远程分支差异git log
显示所有提交过的版本信息 //q
退出git reset --hard fb479960c0cec5549463ae123d70bdd72ccf6be7
通过commit id
回退
git tag
查看标签git show v1.3.5
查看某个标签的详情