Git命令笔记

注意,所有 Git 命令都以 git 开头。

1克隆github上的仓库到本地

git clone + [仓库地址]

克隆远程仓库到本地时,还可以使用 -o 选项修改主机名,在地址后面加上一个字段作为本地仓库的主目录名

git remote -v 命令可以查看本地仓库所关联的远程仓库信息

git remote 命令就于管理本地仓库所关联的主机,一个本地仓库可以关联任意多个主机(即远程仓库)。

git init 它会把当前所在目录变成一个本地仓库,因为有 GitHub 的存在,这个命令在我们的生产生活中用到的次数应该是零,除非你想费时费力自己搭建服务器。

2Git基础操作

Git 本地仓库有三大区域:工作区、暂存区、版本区。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-xTGjJ3Di-1617701594918)(git笔记.assets/image-20210314204454286.png)]

进入某一个仓库后,git status 查看整个仓库的状态。

echo+文件名创建一个文件。

echo '文件内容' >> 文件名添加内容给文件或创建一个文件并添加内容。

git add [文件名] 命令跟踪此新建文件,即把新增文件添加到暂存区,以备提交。如果对多个文件或目录进行了增删改,可以使用 git add . 命令全部添加到暂存区。注意这里有个概念,当我们修改了工作区,git add 命令是将这些修改添加到暂存区,暂存区记录的只是修改。

git reset -- [文件名] 或者 git rm --cached [文件名] 命令撤销暂存区的修改。如果省略最后的文件名,把命令写成 git reset -- 即可把暂存区的全部修改撤销。

git diff用来查看工作区被跟踪的文件的修改详情。

git diff --cached 查看暂存区的全部修改。

从新的页面退出可以用按Q。

git commit 命令把暂存区的修改提交到版本区,生成一个新的版本

git log,它用来查看版本区的提交历史记录。

git log [分支名] 查看某分支的提交历史,不写分支名查看当前所在分支
git log --oneline 一行显示提交历史
git log -n 其中 n 是数字,查看最近 n 个提交
git log --author [贡献者名字] 查看指定贡献者的提交记录
git log --graph 图示法显示提交历史

设置github账号

git config --local user.email "写入自己注册 GitHub 账号的邮箱"

git config --local user.name "自己的 GitHub 账号名字"

  • .git/config文件,即「仓库级配置」文件:这个配置中的设置只对当前所在仓库有效。使用.git/config --local,此时读写的就是这个文件。这里的配置仅仅针对当前项目有效。
  • ~/.gitconfig 文件,即「全局级配置」文件:用户目录下的配置文件只适用于该用户。可以使用 git config --global 选项去设置它。
  • /etc/gitconfig 文件,即「系统级配置」文件:系统中对所有用户都普遍适用的配置。可以使用 git config --system 选项。

git config -l 可以查看配置信息

git reset --soft HEAD^ 撤销最近的一次提交,将修改还原到暂存区。--soft表示软退回,软退回一个提交后执行 git branch -avv 命令查看分支信息。对应的还有--hard 硬退回,HEAD^ 表示撤销一次提交,HEAD^^ 表示撤销两次提交,撤销 n 次可以简写为 HEAD~n

git add . 命令将新的修改添加到暂存区

cat 文件名查看文件内容

git reflog 命令记录本地仓库所有分支的每一次版本变化

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-TNIIZAuo-1617701594921)(git笔记.assets/document-uid310176labid9805timestamp1548756307795.png)]

回退到以前的版本可以直接执行命令 git reset --hard [版本号] ,如果记不清版本号,也可以根据上图第 3 行的信息,执行 git reset --hard HEAD@{2} 命令,其中 HEAD@{2} 就是上图第 3 行第 2 列所示,这个命令的意思是回到当前分支最近两次提交版本变化前。可以再通过该命令跳到别的版本

git pull推送到远程仓库。需要联网执行。

3Git分支操作

①添加 SSH 关联授权

若想避免每次pull都要手动输入用户名和密码。可以在系统中创建 SSH 公私钥,并将公钥放到 GitHub 指定位置。如此操作即可生成 GitHub 账户对于当前系统中的 Git 授权。

注意生成秘钥时的邮箱一定要与github账号的邮箱一样。

ssh-keygen命令生成公私钥。公私钥存放在主目录下的隐藏目录 .ssh 中的两个文件中。

使用 cat ~/.ssh/id_rsa.pub 可以查看公钥。

要在GItHub官网个人Settings部分–SSH and GPG keys处添加公钥。title 自定义就行。

之后就可以用git clone ssh链接将仓库克隆到本地 了。这样git push就不用再属于用户名和密码了。

②为Git命令设置别名

GIt命令设置别名的命令是 git config --global alias.[别名] [原命令],如果原命令中有选项,需要加引号。别名是自定义的,可以随意命名,设置后,原命令和别名具有同等作用。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-WBUpmO04-1617701594923)(git笔记.assets/uid310176-20190514-1557819719173)]

自己设置的别名要记住,也可以使用 git config -l 命令查看配置文件。

③Git分支管理

Git 作为分布式版本控制器最强大的功能:分支管理。

命令 git fetch,它的作用是将远程仓库的分支信息拉取到本地仓库,注意,仅仅是更新了本地的远程分支信息。fetch 命令的作用是刷新保存在本地仓库的远程分支信息,此命令需要联网。此时若想使本地 master 分支的提交版本为最新,可以执行 git pull 命令来拉取远程分支到本地,pull 是拉取远程仓库的数据到本地,需要联网,而由于前面执行过 git fetch 命令,所以也可以执行 git rebase origin/master 命令来实现 “使本地 master 分支基于远程仓库的 master 分支”,rebase 命令在后面还会经常用到,这里只需按部就班操作即可。

分支在项目开发中作用重大,多人协作时尤其不可或缺。例如一个项目上线了 1.0 版本,研发部门需要开发 1.1、1.2 两个测试版,增加不同的新功能,测试版的代码显然不能在正式版所在的分支上,此时需要新的分支来存放不同版次的代码。再例如实验楼的课程团队在维护课程仓库时,每个人都有各自的分支,在自己的分支上进行修改,然后向 master 分支提 PR(pull request),最后从 master 分支推送到线上。

git br 查看分支信息。

git branch [分支名] 可以创建新的分支。此命令创建新分支后并未切换到新分支,还是在 master 分支上,执行 git checkout [分支名] 切换分支,checkout 也是常用命令,先给它设置别名,然后切换分支。

git checkout -b [分支名] 创建分支并切换到新分支。

在哪个分支上创建新分支,新分支的提交记录就与哪个分支一致。新建分支并无跟踪任何远程分支。

执行 git push [主机名] [本地分支名]:[远程分支名] 即可将本地分支推送到远程仓库的分支中,通常冒号前后的分支名是相同的,如果是相同的,可以省略 :[远程分支名],如果远程分支不存在,会自动创建。

命令 git branch -u [主机名/远程分支名] [本地分支名] 可将本地分支与远程分支关联,或者说使本地分支跟踪远程分支。如果是设置当前所在分支跟踪远程分支,最后一个参数本地分支名可以省略不写。命令的 -u 选项是 --set-upstream 的缩写

执行 git branch --unset-upstream [分支名] 即可撤销该分支对远程分支的跟踪,同样地,如果撤销当前所在的分支的跟踪,分支名可以省略不写。

删除远程分支,使用 git push [主机名] :[远程分支名]

如果一次性删除多个,可以这样:git push [主机名] :[远程分支名] :[远程分支名] :[远程分支名]注意:当前所在的分支不能被删除。

git branch -D [分支名] 删除本地分支,同样地,此命令也可以一次删除多个,将需要删除的分支名罗列在命令后面即可。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值