1.下载Git软件:
http://msysgit.github.io/
2.安装git软件(很简单)。
安装成功后,在[开始]->[程序]->[git],下就会看见Git Bash和Git GUI,打开Git Bash,进入bash界面。
或者点击鼠标右键,如下图:
3.注册邮箱
在git bash界面输入如下内容即可完成邮箱的注册:
$ git config --global user.name "user.name"
(说明:双引号中需要你的用户名,这个可以随便输入,比如"Mrzou")
$ git config --global user.email "yourmail@youremail.com"
(说明: 双引号中需要输入你的有效邮箱,比如“3820xxxxx@qq.com”)
4.查看是否存在ssh keys
$ cd ~/.ssh
若出现“No such file or directory”,则表示需要创建一个ssh keys。
5.创建新的ssh keys
$ssh-keygen -t rsa -C "3820xxxxx@qq.com"
$指定目录: C:MykeysForGit(说明:若在此处不输入路径,而直接按回车,则ssh keys生成后存放的路径为C:User.ssh)
$输入密码: 123456
$确认密码: 123456
(或者直接三个回车,省事)
如此即可在C:MykeysForGit文件夹中生成ssh keys。包括两个文件rd_rsa和id_rsa.pub
6.到目前为止即完成了git软件的安装和钥匙的生成。
添加公钥到你的远程仓库(github)
1、查看你生成的公钥:
cat ~/.ssh/id_rsa.pub
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC0X6L1zLL4VHuvGb8aJH3ippTozmReSUzgntvk434aJ/v7kOdJ/MTyBlWXFCR+HAo3FXRitBqxiX1nKhXpHAZsMciLq8vR3c8E7CjZN733f5AL8uEYJA+YZevY5UCvEg+umT7PHghKYaJwaCxV7sjYP7Z6V79OMCEAGDNXC26IBMdMgOluQjp6o6j2KAdtRBdCDS/QIU5THQDxJ9lBXjk1fiq9tITo/aXBvjZeD+gH/Apkh/0GbO8VQLiYYmNfqqAHHeXdltORn8N7C9lOa/UW3KM7QdXo6J0GFlBVQeTE/IGqhMS5PMln3 admin@admin-PC
2、登陆你的github帐户。点击你的头像,然后 Settings -> 左栏点击 SSH and GPG keys -> 点击 New SSH key
新建SSH keys
3、然后你复制上面的公钥内容,粘贴进“Key”文本域内。 title域,自己随便起个名字。
4、点击 Add SSH key。
完成以后,验证下这个key是不是正常工作:
ssh -T git@github.com Attempts to ssh to github
如果,看到:
$ ssh -T git@github.com AThe authenticity of host 'github.com (192.30.255.112)' can't be established. RSA key fingerprint is SHA256:nThbg6kXUpJWGl7E1IGOCspRomTxdCARLviKw6E5SY8. Are you sure you want to continue connecting (yes/no)?
直接输入 yes回车,然后会看到下面这句
Warning: Permanently added 'github.com,192.30.255.112' (RSA) to the list of known hosts.
Hi xxxxxxx(github用户名)! You've successfully authenticated, but GitHub does not provide shell access.
恭喜你,你的设置已经成功了。
6、到github上新建一个自己的项目
https://github.com/ 点击进入后登录自己的帐号,然后在网页的右上角点击 + 加号,
再点击new repository ---> 填写项目名称(Repository name) --->填写项目描述(Description) --->选择协议Licenses(选MIT协议)
完了,再点击下方的 Create repository 按钮,ok项目新建完毕,Licenses(协议)如果未选,默认新建完会自动生成一个git push的教程,如下
echo "# gallery-by-react.github.io" >> README.md //在本地新建一个README.md文件件 git init //初始化git git add README.md //新增-- 刚新建增加的README.md文件到本地库 // git add . 或者 git add -A 把当前目录下所有文件加入到本地库 git commit -m "first commit" //提交本地库到git中 git remote add origin git@github.com:zoujian3820/gallery-by-react.github.io.git
//设置使用SSH协议的项目推送地址,也可设置为https的协议,但会要求每次输帐户和密码 git push -u origin master //向github提交推送文件
平时自己建项目也是这个流程,按这个套路上传即可,
git push前请先走一遍下面第 8 条的内容
7.修改git的remote url
使用命令 git remote -v 查看你当前的 remote url
git remote -v
origin https://github.com/xxxxxx(github用户名)/gallery-by-react.git (fetch)
origin https://github.com/xxxxxx(github用户名)/gallery-by-react.git (push)
如果是以上的结果那么说明此项目是使用https协议进行访问的(如果地址是git开头则表示是git协议)
你可以登陆你的github,你在上面可以看到你的ssh协议相应的url,类似:
复制此ssh链接,然后使用命令 git remote 来调整你的url。
//修改远程仓库地址
git remote set-url origin git@github.com:zouxxxx3820/gallery-by-react.git
//删除远程仓库地址
git remote rm origin
//增加远程仓库地址
git remote add origin git@github.com:zouxxxx3820/gallery-by-react.git
然后你可以再用命令 git remote -v 查看一下,url是否已经变成了ssh地址。
然后你就可以愉快的使用git fetch, git pull , git push,再也不用输入烦人的密码了
8、git push提交到github前,必须要检查和设置的地方(小细节往往会让我们痛苦到欲哭无泪)
把本地库的内容推送到远程库GitHub时,记住一定,要在GitHub的你账号网页上右上角,个人的登录退出的位置,
找到setting:
setting->emails->Keep my email address private,把这一项去掉勾选,
We'll remove your public profile email and use 28420935+zoujian3820@users.noreply.github.com when performing web-based Git operations and sending email on your behalf. If you want command line Git operations to use your private email you must set your email in Git.
否则你会一直提交不上去,由于上面限制了使用规定的邮箱,所以会一直提交不上,报错如下
$ git push -u origin master Counting objects: 3, done. Writing objects: 100% (3/3), 237 bytes | 0 bytes/s, done. Total 3 (delta 0), reused 0 (delta 0) remote: error: GH007: Your push would publish a private email address. remote: You can make your email public or disable this protection by visiting: remote: http://github.com/settings/emails To git@github.com:zoujian3820/gallery-by-react.github.io.git ! [remote rejected] master -> master (push declined due to email privacy restrictions) error: failed to push some refs to 'git@github.com:zoujian3820/gallery-by-react.github.io.git'
9、git开发中常用操作
远程仓库相关命令 检出仓库:$ git clone git://github.com/jquery/jquery.git 查看远程仓库:$ git remote -v 添加远程仓库:$ git remote add [name] [url] 删除远程仓库:$ git remote rm [name] 修改远程仓库:$ git remote set-url --push[name][newUrl] 拉取远程仓库:$ git pull [remoteName] [localBranchName] 推送远程仓库:$ git push [remoteName] [localBranchName] 删除文件:git rm 文件名[删除本地git仓库文件, 提交后远程服务器上的文件才会消失] 查看状态:git status 添加记录:git add 文件名 或 git add . [将文件提交到远程git服务器上] 添加描述:git commit -m "描述或备注类似svn提交时的注释" 同步数据:git pull [获取git远程服务器上的数据也可以具体到某一分支如: git pull origin 分支名] 提交数据:git push origin 分支名 分支操作 查看本地分支:$ git branch 查看远程分支:$ git branch -r 查看所有分支:git branch -a //remotes开头的代表是远程分支 创建本地分支:git branch 分支名 //注意新分支创建后不会自动切换为当前分支 切换分支:git checkout 分支名 创建+切换分支:git checkout -b 分支名 合并某分支到当前分支:git merge 分支名name //将名称为name的分支与当前分支合并 [比如,如果要将开发中的分支(deve),合并到稳定分支(master), 首先切换的master分支:git checkout master。 然后执行合并操作:git merge deve。 如果有冲突,会提示你,调用git status查看冲突文件。 解决冲突,然后调用git add或git rm将解决后的文件暂存。 所有冲突解决后,git commit 提交更改。] 创建远程分支(本地分支push到远程):git push origin 分支名 删除分支:git branch -d origin 分支名 删除分支执行git branch -d 分支名 如果该分支没有合并到主分支会报错,可以用以下命令强制删除git branch -D 分支名 删除远程分支方法一:git push origin :分支名 删除远程分支方法二:git push origin --delete 分支名 撤销修改:git checkout -- file 放弃所有修改:git checkout . 回到某一个commit的状态,并重新增添一个commit: git revert commit-id 比较当前文件和暂存区文件差异: git diff 撤销git add 如果是撤销所有的已经add的文件: git reset HEAD . 如果是撤销某个文件或文件夹: git reset HEAD -filename //filename:文件名或者文件夹名 解决git文件名大小写无法修改的问题, git默认配置为忽略大小写,因此无法正确检测大小写的更改 运行: git config core.ignorecase false 关闭git忽略大小写配置,即可检测到大小写名称更改
10、git获取历史版本
git可以根据commit时生成的SHA值,直接拿到目标版本的所有代码。而且不影响当前的代码。
具体操作如下:
使用gitbash进入git命令行,查看commit记录。操作如下:
git log
找到你想提取的目标版本,复制对应的SHA值,新建一个分支,操作如下:
git branch 新分支名 SHA值
切换到新的分支,操作如下:
git checkout 新分支名
接下来,代码会自动切换成新分支中的代码,也就是历史版本的代码。
查看项目的所有分支(包括本地和远程)
git branch 查看本地分支
git branch -a 查看远程分支 remotes开头的代表是远程分支
删除本地分支
git branch -d 分支名称
删除远程分支
git push origin --delete 分支名称