git的常用命令理解整理

xiaoxiao2021-02-28  43

1.创建版本库: mkdir learngit 相当创建文件夹 pwd 用于显示当前目录 git init 可以将刚建立的文件夹变为Git可以管理的仓库 git add git_note.txt 在仓库中添加文件 git commit -m 提交到仓库 反馈的信息中有改变的文件及行数 -m 后为提交的说明 -a 表示提交所有修改(即使你的修改没有git add也会被提交)

2.对于git的版本的提交和操作 git status 掌握仓库当前的状态 eg:你的文件被改变了,但还未经过提交时 git diff 查看具体改变了什么内容 git log 可以显示提交日志 –pretty=oneline 可以简化日志 git reset 可以根据参数的不同返回不同的版本 –hard HEAD 中HEAD指向当前版本,HEAD^表示上一个版本, HEAD^^表示上上一个版本,HEAD~100表示前100个版本,而日志中的commit id 可以帮你回退到任意版本 git reflog 再次打开命令行之后,显示的历史日志记录

3.git链接远端仓库 ssh-keygen -t rsa -C “email” 得到你在远端的公钥 cat ~/.ssh/id_rsa.pub 在命令行上查看,并将得到的公钥复制到你的码云上 git remote add origin git@gitee.com:dorui/git_learning.git 关联远程库 这里的git@gitee.com:dorui/git_learning.git是你项目的SSH(提前需要建好一个项目) git push origin master 推送到码云,若出错 git push origin master -f 刷新码云就可以看到自己之前在git上写的和提交的东西了 之后你的commit就可以直接到远端仓库了

4.与修改息息相关的三个区以及对之前命令的再理解 当你在你的文件中,比如,我现在的gitnotes.txt写了一些东西,然后输入git status,git将会告诉你的gitnotes.txt有改变,此时,git diff你就会发现你改动的内容了,这些改变就在你的工作区; 确定改变之后 git add gitnotes.txt此时刚才的改变(即工作区的东西)将会存在一个暂存区,就好像淘宝里的购物车一样; 当你git commit后,你所做的改变就提交到本地版本库区了,这时你在码云上仍旧看不到自己commit的东西,需要 git push将此次更改的版本提交到远程版本库。 在搞不清楚自己所做的改变在哪个区的情况下,用git status; 想具体看做了哪些修改(提交前最好看看)git diff;

有关修改: 若你在工作区写错东西,输入git checkout – gitnotes.txt,此时会删除你工作区刚做了修改的所有东西; 若在暂存区写错东西,输入git reset – HEAD gitnotes.txt;然后git status发现暂存区清空了,工作区仍有修改,再git checkout – gitnotes.txt; 若你在版本库区了,只能git reset –hard HEAD^ ,回到上一版本了。

有关删除文件: 当你在git里做工程时,不小心rm a.txt删掉了你电脑中的文件,此时,工作区和版本库就不一致了,git status会直接告诉你, 若你想将文件还原回来,只需要git checkout – a.txt(是用版本库里的版本替换工作区的版本); 若想将版本库中的文件也删掉,git rm a.txt,然后git commit就可以了。

5.创建与合并分支 git branch dev 创建一个分支;不加分支名为查看所有分支 git checkout dev 切换到当前分支 git checkout -b dev 创建并切换到dev分支 //git branch 查看当前分支 //git checkout master 切换到主分支 git merge dev 合并分支到当前分支(比如当前子啊主分支,此时就是将dev分支合并到主分支了) git branch -d dev 删除dev分支(删除已经被合并且无用的本地dev分支)

git log –graph –pretty=oneline –abbrev-commit命令可以看到分支合并图。 –graph 显示 ASCII 图形表示的分支合并历史。 –pretty=oneline 日志单行显示 –abbrev-commit commit id后面显示每次的提交说明 当你进行git merge时,若两个分支同时在同一个地方修改的合并时会产生分支冲突,这时候需要手动修改在提交,从提交日志可以清楚的看到分支的合并痕迹;若只有一个分支被修改的两个分支合并,会直接合并成功,并告诉你是一种快速合并模式,这种情况下,你在提交日志上是看不到分支合并痕迹的,若想看到之前的分支痕迹,需要加上–no-ff就是不同的合并模式了。

6.有关分支操作中的一些命令整理 1>远程分支就是本地分支push到服务器上的时候产生的。比如maste## 标题 ##r就是一个最典型的远程分支(默认)。 git push origin master 除了master之外,我们还可以随便创建分支,然后push到服务器上去。例如: 2>远程分支和本地分支需要区分,所以,在从服务器上拉取特定分支的时候,需要指定本地分支名字。 git checkout –track origin/develop 注意该命令由于带有–track参数,所以要求git1.6.4以上! 这样git会自动切换到develop分支。 3>同步本地远程分支: git fetch origin 4>提交分支数据到远程服务器: git push origin <本地分支名>:<远端分支名> 例如: git push origin develop:develop 当然如果当前在develop分支下,也可以直接 git push 5>删除远程分支develop: git push origin :develop

7.git fetch 与git pull的区别 git fetch:相y当于是从远程获取最新版本到本地,不会自动merge git pull:相当于是从远程获取最新版本并merge到本地

若远端有分支,clone下来后直接git checkout 分支名,就可以在本地创建并切换到当前分支。

转载请注明原文地址: https://www.6miu.com/read-2300063.html

最新回复(0)