Git常见操作指令

Posted 前端加油

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Git常见操作指令相关的知识,希望对你有一定的参考价值。

文章目录

Git学习

1. 配置git

配置提交人姓名:git config --global user.name 提交人姓名

配置提交人姓名:git config --global user.email 提交人邮箱

查看git配置信息:git config --list

2.创建版本库

创建新的文件夹:mkdir xxx

创建新的文件:touch xxx

初始化git仓库:git init

把文件添加到暂存区:git add 文件(需要提交的修改过的文件通通放到暂存区)

把工作时的所有变化提交到暂存区:git add .

把文件提交到仓库:git commit -m “提交信息”(表明本次提交的含义)(每当你觉得文件修改到一定程度的时候,就可以用commit保存。一旦你把文件改乱了,或者误删了文件,还可以从最近的一个commit恢复,然后继续工作。)

Git的版本库里存了很多东西,其中最重要的就是称为stage的暂存区,还有Git为我们自动创建的第一个分支master,以及指向master的一个指针叫HEAD。

把文件往Git版本库里添加的时候,是分两步执行的

第一步是用git add把文件添加进去,实际上就是把文件修改添加到暂存区;

第二步是用git commit提交更改,实际上就是把暂存区的所有内容提交到当前分支。每次修改,如果不用git add到暂存区,那就不会加入到commit中

3.版本回退

查看仓库状态:git status

当对文件修改后,查看具体修改的内容:git diff

显示提交记录,显示版本号和提交人信息:git log (输入q结束)

版本回退:git reset --hard commit_id(commit_id为回退版本的版本号,只需输入版本号的前几位,如33bf43)

显示自己提交命令历史:git reflog

当你改乱了或删除工作区某个文件的内容,想直接撤销工作区的修改时:git checkout – xxx

当你不但改乱或删除工作区某个文件的内容,还添加到了暂存区时,想撤销修改,分两步:先git reset HEAD xxx可以把暂存区的修改撤销掉重新放回工作区 后git checkout – xxx 撤销工作区的修改

在工作区删除文件:rm xxx

在暂存区中删除文件:git rm xxx

4.远程仓库

在github创建一个新仓库learngit

在本地仓库关联到远程仓库:git remote add

比如:git remote add origin git@github.com:Better-XKF/learngit.git]

origin是在本地仓库中对远程仓库起的别名,也可以为别的,连接github可以写github,连接gitee可以写gitee,这样一来,我们的本地库就可以同时与多个远程库互相同步,如果要推送到GitHub,使用命令git push github master,如果要推送到Gitee,使用命令:git push gitee master

git@github.com:Better-XKF/learngit.git为我github远程仓库learngit的URL地址

第一次把本地库的内容推送到远程库上:git push -u origin master(以后不用加u)

由于远程库是空的,我们第一次推送master分支时,加上了-u参数(以后修改不加),Git不但会把本地的master分支内容推送的远程新的master分支,还会把本地的master分支和远程的master分支关联起来,在以后的推送或者拉取时就可以简化命令。

查看远程库信息:git remote -v

删除远程库:git remote rm xxx

此处的“删除”其实是解除了本地和远程的绑定关系,并不是物理上删除了远程库。远程库本身并没有任何改动。要真正删除远程库,需要登录到GitHub,在后台页面找到删除按钮再删除。

克隆仓库:git clone

5.分支管理

为了便于理解,可以认为分支就是当前工作目录中代码的一份副本。使用分支,可以让我们从开发主线上分离出来,以免影响开发主线。多件事情同时进行,互不影响。

创建分支:git branch xxx

切换分支:git switch/checkout xxx (使用switch比checkout更容易理解)

创建并切换分支:git switch -c xxx/ git checkout -c xxx

查看当前所在的分支:git branch(列出所有分支,当前分支前面会标一个*号。)

在分支xxx开发完,将代码改动的地方提交到仓库 ,xxx分支工作完成后切换到master分支:git switch master

在master分支上发现在xxx分支改动的地方在master分支上没有,这是因为那个提交是在xxx分支上,而master分支此刻的提交点并没有变。

合并分支:git merge xxx (合并xxx分支到当前的分支)

删除分支:git branch -d xxx

解决合并分支冲突问题:当Git无法自动合并分支时,就必须首先解决冲突。解决冲突后,再提交,合并完成。解决冲突就是把Git合并失败的文件手动编辑为我们希望的内容,再提交。用git log --graph命令可以看到分支合并图。

修复bug:当你接到一个修复一个代号2的bug的任务时,很自然地,你想创建一个分支bug-2来修复它,但是,当前正在dev上进行的工作还没有提交

将工作现场进行保存:git stash

切换到master分支创建bug-02分支修复bug,修复完成后,切换到master分支,并完成合并。接着回到dev分支干活了。

在dev分支中先修复刚才的bug-02:git cherry-pick commit_id(下面是e763105)

查看工作现场保存列表:git stash list

恢复工作现场,接着进行dev分支开发:git stash pop

强制删除一个没有被合并过的分支:git branch -D xxx

6.多人协作消除冲突

代码提交的时候常常会发生冲突的情况,尤其是协同开发的情况下。在合并分支的时候, dev分支恰好有人都修改了同一个文件,git不知道应该以哪一个人的文件为准,也就是说dev分支相同文件相同位置的的不同操作!所以就产生了冲突了。

git push产生冲突,说明有人先你一步同步了他的本地代码到远程。这时候,你需要先拉取代码,可以使用命令git pull , 该命令会将远程的提交和你本地的提交merge,如果有冲突需要手动解决并提交,会产生merge的记录

git pull – rebase 该命令会把你的提交“放置”在远程拉取的提交之后,即改变基础(变基),如果有冲突解决所有冲突的文件,git add <冲突文件> git rebase --continue完美解决问题。

从本地推送分支:git push origin branch-name

拉取远程仓库代码:git pull

可能会抓取失败,需要指定本地dev分支与远程origin/dev分支的链接: git branch --set-upstream-to=origin/dev dev

抓取成功后,代码本地合并,我们需要手动解决冲突,再推送:git push origin dev

在GitHub上,可以任意Fork开源仓库,自己拥有Fork后的仓库的读写权限,可以克隆到本地进行修改,也可以推送pull request给官方仓库来贡献代码。

7.标签管理

新建标签:git tag (默认为HEAD,是打在最新提交的commit上,先提交commit再打tag,也可以指定一个commit id:git tag v0.9 f52c633)

指定标签信息:git tag -a -m “blablabla…”

查看所有标签:git tag

推送本地标签:git push origin

推送全部未推送过的本地标签:git push origin --tags

删除一个本地标签:git tag -d

删除远程标签:git push origin :refs/tags/

配置别名:git config --global alias.st status (st表示status)

很多人都用co表示checkout,ci表示commit,br表示branch sw表示switch

以上是关于Git常见操作指令的主要内容,如果未能解决你的问题,请参考以下文章

git中常见操作指令

git常见指令

git指令总结及常见问题积累与解决方案

Git常见的术语有哪些?

git 基础入门操作

git初识