30 分钟熟练使用 GIT

前言

我以前一直使用 vssourcetree 管理 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 keygithub : On the GitHub site Click “Account Settings” > Click “SSH Keys” > Click “Add SSH key”
    • 测试 ssh 链接 github
    • 设置自己的 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 里设置回 masterprotected
  • step4 代码撤销
    • git checkout . 撤销本地修改
    • git clean -f git clean -nf 删除 untracked files
    • git clean -fd git clean -nfduntracked 的目录也一起删掉
    • git clean -xfd git clean -nxfdgitignoreuntrack 文件/目录也一起删掉
    • 在用上述 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 查看某个标签的详情

猜你喜欢

转载自www.cnblogs.com/frank-zhang/p/12544719.html