git与github
Git的三个区域概念
Git有工作区、暂存区和版本库的概念
工作区 - 就是电脑能看到的目录;
暂存区 - 英文叫stage或index。一般存放在.git
目录下的index文件中,所以我们把暂存区有时也叫作索引(index)。
版本库 - 工作区有一个隐藏目录.git
,这个不算工作区,而是Git的版本库。
将Git与远端连接
生成SSH Key
输入命令ssh-keygen -t rsa,会生成密钥文件,id_rsa.pub是公钥,密钥文件默认存在home/user/.git文件中(Windows默认存在C:\Users\user.ssh)
添加GitHub的SSH密钥
-
登录GitHub账户
-
打开Setting
-
找到SSH and GPG
-
选择SSH Keys
-
选择 New SSH Key
-
将id_ras.pub的内容粘贴到Key栏
检查是否配置成功
添加SSH Key后,输入命令ssh -T git@github.com
查看是否配置成功
Git的命令和操作
可视化学习教程
learngitbranching
简单的操作
查看当前工作区的状态git status
。
将修改后的文件添加至暂存区 git add
。
提交修改 git commit -m "commit reason"
查看git日志 git log
查看某次commit
的详情 git show commit_id
修改提交人的基本信息 git config --global user.email "xxxxx@xxx.com"
git config --global user.name "name"
回滚状态 git reset commit_id
分支branch
创建分支 git branch branchname
切换分支 git checkout branchname
创建并切换分支 git checkout -b branchname
查看本地分支 git branch
,带*
号的是当前分支
查看远端分支 git branch -r
查看所有分支 git branch -a
删除分支 git branch -d branch_name
,分支合并到主分支之后就没用了,所以将其删除
修改当前分支的分支名 git branch -m new_name
,如果new_name被占用,则需要-M
参数来强制执行。
git的默认分支是master,原先github的默认分支也是master。但是2020年10月开始,github的默认分支变成了main。因此将本地分支与github默认远程分支关联前,需要将本地分支重命名为main。
版本tag
再当前代码状态新建版本标签tag
git tag v1.0
查看历史tag
记录 git tag
切换到某个tag
git checkout v1.1
push and pull
如果是本地已经有了一个git项目,则需要与远端关联 git remote add origin https://github.com/username/repo_name.git
,其中origin是为远端起的名字,也可以用其他名字,一般习惯用origin。如果是从远端clone
下来的,就不需要再关联了。
将本地代码push
到远端之前,需要先进行pull
。完整的pull
命令为git pull origin remote_branch:local_branch
,也可以省略后面的local_branch
,这样会将代码pull
到当前分支。还可以使用命令git pull origin
,拉取当前的分支所关联的远程分支到当前分支。如果有冲突,则使用命令git pull --rebase origin master
,根据提示处理有冲突的代码即可(还有另一种解决冲突的方式,后面再补充)。
完整的push
命令为git push origin local_branch:remote_branch
,如果省略了远程分支,即git push origin local_branch
,表示将本地分支local_branch
的推送到与之关联的分支,如果分支不存在就会在远程新建一个相应的分支。
git push --set-upstream origin main
push
当前的分支并且将remote分支设置成upstream(也就是设置关联吧)
分支合并
一般项目开发中不会直接在主分支上做修改,而是创建一个分支,在分支上修改,测试通过后再merge
到主分支上。
- 先切换到
master
分支 git pull
拉取当前分支的更新git merge branch1
命令将branch1
合并到master