git使用笔记

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 分支名称
原文地址:https://www.cnblogs.com/MrZouJian/p/7736388.html