天天看点

git基础入门学习笔记git基础操作指令(完整)

git基础操作指令(完整)

git init 初始化该目录为git仓库

git add

git commit -m “message” 把文件提交到仓库-m后面输入的是本次提交的说明,可以输入任意内容

修改文件

运行git status命令看看修改文件结果,时刻掌握仓库当前的状态

git diff顾名思义就是查看difference,显示的格式正是Unix通用的diff格式

提交修改过后文件步骤:git add readme.txt->git status->git commit -m “add distributed”->git status看看仓库的当前状态

git log命令显示从最近到最远的提交日志

嫌输出信息太多,看得眼花缭乱的,可以试试加上–pretty=oneline参数

仓库版本切换git reset --hard commit_id

用git log可以查看提交历史,以便确定要回退到哪个版本

git reflog查看命令历史,以便确定要回到未来的哪个版本

git checkout – file可以丢弃工作区的修改

git reset HEAD 可以把暂存区的修改撤销掉(unstage),重新放回工作区

手动删除文件,然后使用git rm 和git add效果是一样的,然后提交

git checkout其实是用版本库里的版本替换工作区的版本,无论工作区是修改还是删除,都可以“一键还原”

ssh-keygen -t rsa -C “[email protected]” 创建ssh密钥

要关联一个远程库,使用命令git remote add origin [email protected]:path/repo-name.git;

把本地库的内容推送到远程,用git push命令,实际上是把当前分支master推送到远程。

使用命令git push -u origin master第一次推送master分支的所有内容

git push origin master推送最新修改

要克隆一个仓库,首先必须知道仓库的地址,然后使用git clone命令克隆。git clone [email protected]:calabababy/gitskills.git

Git支持多种协议,包括https,但ssh协议速度最快。

git checkout命令加上-b参数表示创建并切换

用git branch命令查看当前分支

git merge命令用于合并指定分支到当前分支。

创建分支:git branch

切换分支:git checkout 或者git switch

创建+切换分支:git checkout -b 或者git switch -c

合并某分支到当前分支:git merge

删除分支:git branch -d

用git log --graph命令可以看到分支合并图。

git merge --no-ff -m 请注意–no-ff参数,表示禁用Fast forward表示不删除分支

当手头工作没有完成时,先把工作现场git stash一下,然后去修复bug,修复后,再git stash pop,回到工作现场;

在master分支上修复的bug,想要合并到当前dev分支,可以用git cherry-pick 命令,把bug提交的修改“复制”到当前分支,避免重复劳动。

如果要丢弃一个没有被合并过的分支,可以通过git branch -D 强行删除

要查看远程库的信息,用git remote

推送分支,就是把该分支上的所有本地提交推送到远程库。推送时,要指定本地分支,这样,Git就会把该分支推送到远程库对应的远程分支上:git push origin master

在本地创建和远程分支对应的分支,使用git checkout -b branch-name origin/branch-name,本地和远程分支的名称最好一致;

建立本地分支和远程分支的关联,使用git branch --set-upstream branch-name origin/branch-name;

从远程抓取分支,使用git pull,如果有冲突,要先处理冲突。

因此,多人协作的工作模式通常是这样:

首先,可以试图用git push origin 推送自己的修改;

如果推送失败,则因为远程分支比你的本地更新,需要先用git pull试图合并;

如果合并有冲突,则解决冲突,并在本地提交;

没有冲突或者解决掉冲突后,再用git push origin 推送就能成功!

如果git pull提示no tracking information,则说明本地分支和远程分支的链接关系没有创建,用命令git branch --set-upstream-to origin/。

这就是多人协作的工作模式,一旦熟悉了,就非常简单。

rebase操作可以把本地未push的分叉提交历史整理成直线;

rebase的目的是使得我们在查看历史提交的变化时更容易,因为分叉的提交需要三方对比。

命令git tag 用于新建一个标签,默认为HEAD,也可以指定一个commit id;

命令git tag -a -m "blablabla…"可以指定标签信息;

命令git tag可以查看所有标签。

可以用git show 查看标签信息

命令git push origin 可以推送一个本地标签;

命令git push origin --tags可以推送全部未推送过的本地标签;

命令git tag -d 可以删除一个本地标签;

命令git push origin :refs/tags/可以删除一个远程标签。

让Git显示颜色,会让命令输出看起来更醒目:git config --global color.ui true

忽略某些文件时,需要编写.gitignore;

.gitignore文件本身要放到版本库里,并且可以对.gitignore做版本管理!