Git本地
设置username和email
git commit 命令会记录提交者的信息,所以使用git前必须先添加两条信息。
$ git config --global user.name "你的GitHub登陆名"
$ git config --global user.email "你的GitHub注册邮箱"
查看当前用户
1. 查看当前登录账号:
git config user.name
2. 查看当前登录邮箱:
git config user.email
Git远程仓库
本文以登录GitHub为例。
因为本地Git仓库和GitHub仓库之间的传输是通过SSH加密传输的,GitHub需要识别是否是你推送,GitHub只要知道了你的公钥,就可以确认只有你自己才能推送,所以需要配置ssh key。
本地创建SSH Key
在用户主目录(默认位置为C:\Users\Administrator,如果当前Windows用户不是Administrator,那么此处对应为当前登录的Windows用户账号)下,看看有没有.ssh文件,如果有,再看文件下有没有id_rsa和id_rsa.pub这两个文件,如果已经有了,可直接到下一步。如果没有,打开Git Bash,输入命令,创建SSH Key。
# 注意ssh与-keygen之间没有空格
ssh-keygen -t rsa -C "你自己注册GitHub的邮箱"
GitHub创建SSH Key
GitHub,打开“Settings”–“SSH Keys”页面,找到“SSH and GPG keys”,然后点击“New SSH Key”,填上Title(可以任意填写名称),在Key文本框里粘贴id_rsa.pub文件里的全部内容,最后输入GitHub账号的密码进行确认即可。
id_rsa.pub 默认在C:\Users\Administrator.ssh。
每台想要登陆某个github账号的主机都需要有一个对应的key,例如你有一个github账号,你在你的笔记本和台式上都要创建key。
使用创建的SSH Key登录
git bash里输入下面的命令登录:
$ ssh -T git@github.com
如果看到 hi + 你的用户名说明密钥验证通过了,你已经可以上传下载了。
本地仓库上传到GitHub
# 初始化git项目
git init
# 把所有文件加入版本管理
git add -A
# 提交到本地仓库
git commit -m "初始化项目"
# 添加远程仓库,git@github.com:liyuwei520/halo-comment.git为远程仓库地址
# 注意这里的远程仓库地址必须是自己GitHub里存在的仓库地址,否则是无法push的
git remote add origin git@github.com:liyuwei520/halo-comment.git
# 推送到远程仓库
git push -u origin master
fatal: remote origin already exists 错误解决办法
可能会遇到该报错,遇到执行该命令后继续执行上一小节的命令即可。
git remote rm origin
push指定文件
在开发过程中会遇到只需要把部分文件push
到远程仓库,其它内容保存在本地即可。针对这种应用场景,我们可以如下操作:
# 查看有哪些文件内容做了修改
git status
# add指定的文件到缓冲区
git add filename1 filename2
# commit缓冲区的内容到本地库
git commit -m "更新部分内容"
# 上传本地库内容到远程分支
git push origin branchname
拉取代码
拉取master
# 拉取master分支
git clone https://github.com/LANGJIALINGBOJUE/hello-world.git
拉取指定分支
# 拉取指定分支
git clone -b branchName https://github.com/LANGJIALINGBOJUE/hello-world.git
分支管理
创建分支
# 克隆master
git clone https://github.com/LANGJIALINGBOJUE/hello-world.git
# 先在本地创建分支,并切换到该分支
git checkout -b branchName
# 在远程仓库创建分支。此时远程分支初始化内容与master分支是完全一样的。
git push --set-upstream origin branchName
# 或者简写为:
git push -u origin branchName
切换分支
git checkout branchname
注:
需要注意的是:如果不同的分支在本地位于同一个文件夹,那么切换分支对应的文件也会同时出现变化。例如
master
与test0
处于同处于d:/git/hello-world
,那么切换分支后该文件夹也会显示不同的文件。
注:
git checkout -b branchname
,此命令可以创建并直接切换到新分支。
合并分支
# 合并分支
git merge branchname
# 提交合并的内容
git push
合并分支是将指定的分支合并到当前分支,这点务必注意!
本案例是把test0
分支合并到matser
分支。为了便于观察效果,在test0
分支中特意新建了一个test0.txt
文件并push
到了仓库:
更新分支
当我们需要把master
或者其它分支合并到指定分支时:
# 切换到主分支
git checkout master
# 把主分支代码pull下来
git pull
# 切换到指定分支
git checkout branchname
# 把主分支代码merge到指定分支
git merge master
# push指定分支。此时master与branchname分支的内容是完全一样的
git push origin branchname
删除分支
# 删除本地分支
git branch -d branchname
# 删除远程分支
git push origin --delete branchname
查看提交历史
# 查看历史提交记录
git log
或者
# 以列表形式查看指定文件的历史修改记录
git blame filename
Git标签
创建标签
如果达到一个重要的阶段,并希望永远记住那个特别的提交快照,那么就可以使用Git标签
。
git tag -a v1.1 -m "提交一个标签”
此时会打开一个编辑器写一个标签注解,编辑器的用法与Linux
编辑器操作一致:
提交标签到远程仓库
git push --tags
查看所有标签
git tag
更新本地仓库
git fetch
是 Git 中用于从远程仓库下载最新代码到本地仓库的命令,但并不会自动合并代码到本地分支。
git fetch <remote>
其中,remote
是远程仓库的名称,比如 origin
。
执行 git fetch
命令后,Git 会将远程仓库中的最新代码下载到本地仓库中,但是并不会自动合并到当前分支中。如果想要将最新代码合并到本地分支中,需要使用 git merge
命令或者 git rebase
命令。
记录一个坑
Git账号问题
Git
账号密码也可能保存在Windows
的凭据管理器中。如果保存在凭据管理器,那么无论在Git
中怎么修改账号密码也是无济于事的。