配置全局变量
查看用户名邮箱:
1. git config user.name
2. git config user.email
配置用户名邮箱:
1. git config --global user.name xxx
2. git config --global user.email xxx@xxx.com
这样你提交的远程分支就显示你的信息了。
1. 个人使用:
创建项目
在项目文件夹中右键,选择Git Bash Here,打开git命令框,输入git init 即把当前的目录变成可以管理的git仓库,生成隐藏.git文件。
使用 GitHub Desktop 添加现有项目到 GitHub
将仓库从本地计算机添加到 GitHub Desktop
单击 Publish Repository(发布仓库),发布到GitHub
查看当前配置的Git远程仓库
# Show existing remotes
$ git remote
> origin
$ git remote -v
> origin git@git-server/octocat/hello-world.git (fetch)
> origin git@git-server/octocat/hello-world.git (push)
- 新建.gitignore配置文件,readme文件
- git status 查看状态
- git add 将所有的文件添加到暂存区
- git commit -m “xxx” 把文件提交到版本库
- git push -u origin master 将项目推送到远程仓库(同时也将本地分支master推送到远程)(第一次推送要加-u,这样以后就可以直接git push,不用再加 origin master)
2. 多人协作
设置SSH Key
为什么GitHub需要SSH Key呢?
因为GitHub需要识别出你推送的提交确实是你推送的,而不是别人冒充的,所以,GitHub只要知道了你的公钥,就可以确认只有你自己才能推送。
当然,GitHub允许你添加多个Key。假定你有若干电脑,你一会儿在公司提交,一会儿在家里提交,只要把每台电脑的Key都添加到GitHub,就可以在每台电脑上往GitHub推送了。
从远程库克隆
- 项目默认有一个主分支master,还有一个develop分支,简称dev,一般都是在dev分支下工作的,到最后项目测试基本完成,要发布了,就把dev分支下的项目合并到master分支上。master分支基本不做改动,只做项目版本的更新。
- 让每一个协作者克隆远程项目到本地,自然也就克隆了master分支和dev分支,切换到dev分支下进行工作。
git checkout -b dev
#创建一个新的分支,并且切换到dev分支。
#两个作用:git checkout命令加上-b参数表示创建并切换
#相当于以下两条命令:git branch dev 和 git checkout dev
git branch
#查看当前所在的分支。
#列出所有分支,当前分支前面会标一个*号。
git checkout master
#dev分支的工作完成,可以切换回master分支
git merge dev
#在master分支上执行
#作用是:把dev分支上的工作成果合并到master分支上
git branch -d dev
#合并完成之后,可以删除dev分支
解决冲突
- 有时候别人修改了一个地方已经提交到远程了,自己也修改了同样的地方,自己也要push时却失败了,这是因为远程项目的版本是最新的,可能和你修改的有冲突,所以每次push前先git pull ,把远程下拉后解决冲突再push就可以成功了。
- 当然你也可以在本地建立一个自己的分支dev_name,平时工作在自己分支下工作,等要push到远程的时候就切换到dev分支下git merge dev_name 把dev_name 下的代码合并到dev下就可以了。
git checkout -b feature1
#创建新的分支feature1,并且切换到这个分支
假设现在,master分支和feature1分支各自都分别有新的提交
git merge feature1
#在master分支上执行该命令,与feature1分支合并。
#这种情况下,Git无法执行“快速合并”,因为会有冲突
#Git报错,xxx文件存在冲突,必须手动解决冲突后再提交
git status #可以查看冲突的文件
然后我们编辑xxx文件,处理冲突,将内容改成我们想要的样子
解决冲突,在master上提交
git log --graph --pretty=oneline --abbrev-commit
#用带参数的git log可以看到分支的合并情况。
git log --graph #可以看到分支合并图。
git branch -d feature1
#最后删除feature分支,完成工作。