工作中最常用,面试时最常问的Git指令,绝对良心!
Git VS SVN
Git是一个开源的分布式版本控制系统,想进一步了解,并知道它和SVN的区别的小伙伴,推荐这个网址Git &SVN
常用指令
我在实习的时候自己用了一些简单的git指令,而且现在很多企业都是内联到了编辑器内操作,比如
这样操作就可以和远程仓库实现了连接,push好之后,
就可以去jenkins上部署你的项目了~
我对Git的感受就是,当你做一个项目开发的时候,而且又不是你一个人,是很多人同时进行的时候,那Git真是太好用了!
当有人对你的代码修改了,你不仅可以找到对应的人,还可以找到修改了什么,还可以回退到你想的任何一个版本。
这也是现在大家都喜欢用Git的原因,管理起来确实很方便!
所以,Git是必须要学会滴~
我之前偶尔看到一个前端小姐姐在面试,她问了对Git的操作了解多少,问他
本地代码传到本地某个分支,远程代码怎么拉到本地分支,emmm就是一些
使用技能,这些没有项目经验,谁敢说会? 会个锤子哦
自己在gitlab或者github上建一个项目,用ssh密钥和本地连上,
自己下个Git Bash测试下,什么都没有自己实践珍贵!
上命令!
# 常用
$ git init # 初始化仓库
$ git add . # 将当前目录下文件全部加到远程仓库中(master)
$ git commit # 提交到远程仓库(默认的master分支) 用的蛮多的
$ git clone # 将远程仓库拷贝到本地
如 git clone ssh://git@10.10.8.64:9922/pythonapi/api-daily-supervision.git
$ git status # 查看当前仓库的状态
$ git log # 查看历史提交记录,这个我用的还是蛮多的
$ git diff [file] # 查看暂存区和工作区的差异 个人用其实就是看些对文件做的改变有哪些,删除或者增加了哪些东西
# 关于回退
$ git reset # 回退版本 ,有下面三种形式
git reset --soft # 将HEAD引用指向给定提交, 索引(暂存区)和工作目录的内容是不变的
git reset --mixed(git reset默认的模式) # HEAD引用指向给定提交,并且索引(暂存区)内容也跟着改变,工作目录内容不变
git reset --hard # HEAD引用指向给定提交,索引(暂存区)内容和工作目录内容都会变给定提交时的状态
git reset --hard HEAD^ # 回退到上个版本
git reset --hard HEAD~3 # 回退到前3次提交之前,以此类推,回退到n次提交之前
git reset --hard commit_id # 退到/进到 指定commit的sha码
如 git reset --hard 125dcfaa558e3276b30b6b2e5cbbb9c00bbdca96
# 关于push 'git push'
git remote -v # 查看远程仓库
git remote add [本地版本库] [url] # 添加远程仓库
# 例如: 提交本地到远程仓库的master
$ git remote add origin git@10.10.8.64:9922/pythonapi/api-daily-supervision.git
$ git push -u origin master
$ git push -f -u origin 远程分支 # 强制提交到远程分支
# 关于pull 'git pull'
$ git pull <远程主机名> <远程分支名>:<本地分支名> # 命令格式
例如: 远程主机 origin 的 master 分支拉取过来,与本地的 develop分支合并。
git pull origin master:develop
# 一些说明-------------
# git pull 其实是git fetch 和 git merge FETCH_HEAD 的简写,
# 简单说,就是你在开始写代码时,先pull一下,拉取最新的代码,如果没用pull,后面再merger在一起就可以嘞,这个用的还是蛮多的。
# 关于分支 这个我用的不多,主要也就下面这几个
$ git branch # 列出本地的分支
$ git branch (branch_name) # 创建分支
$ git checkout (branch_name) # 切换分支
$ git branch -d branch_name # 删除某分支
一些复杂情况
rebase 远程分支
rebase可以说是我目前用的最多的一个指令了,如果你有过git协同开发经验,下面这个你一定遇到过:
- 首先 ,记住rebase谁就是让你的commit到谁的上一级
txueduo@txueduo:~$ git rebase origin/master
- 其次,解决冲突 ,再运行 git rebase -continue 或者git rebase --abort
- 最后,push到远程仓库时,git push --force-with-lease比git push --force更加安全。
rebase -i 合并多个commit为一个
(venv) ➜ dlserver git:(feature-1.5) ✗ git rebase -i HEAD~6 or git rebase -i (comit hash 值)
以上就是我的一些小贡献,希望对大家有帮助~
还是要手动去练习,在错误中学习绝对是最好的学习方式~
遇到不会的就自己研究呗, 毕竟我可是个研究生(废物)===
觉得有用的点个赞