Git 笔记
【查看】【修改】用户名和邮箱地址
//查看:
$ git config user.name
$ git config user.email
//修改 or 添加:
$ git config --global user.name "jerryjin0803"
$ git config --global user.email "jerryjin0803@gmail.com"
配置 SSH Key
Windows平台下,首先安装Git .
设置邮 箱: git config --global user.email “jerryjin0803@gmail.com” (不带邮箱部分就是查看)
设置用户名: git config --global user.name “jerryjin0803” (不带用户名部分就是查看)
//设置邮箱
$ git config --global user.email "jerryjin0803@gmail.com"
//设置用户名
$ git config --global user.name "jerryjin0803"
//生成
$ ssh-keygen:ssh-keygen -t rsa -C "jerryjin0803@gmail.com"
生成位置在:windows 下在 user/用户名/里面找到.ssh文件夹下的 id_rsa 和 id_rsa.pub
复制 id_rsa.pub 内容到网站的管理界面,添加 publicKey,
(登陆GitHub,打开"Account settings",“SSH and GPG keys"页面:然后,点"New SSH Key”,填上任意Title,在Key文本框里粘贴 id_rsa.pub 中的内容)
TortoiseGit 王八壳子不认这个默认生成的KEY。自己用 PuTTYgen.exe 打开(Load)上面生成的密钥 id_rsa 再 Sava private key 把这个存出来的 ppk 给王八壳子用。(保存时如果你没有设置密码,它会问提示你一次)
王八壳子里的设置:设置》Git》远端》(选一个远端)》Putty密》选择上面生成的 ppk 文件即可。
如果喜欢用便携版(绿色版)的PortableGit
上面生成公钥的步骤都一样,你可能会发现 clone 项目时用git:协议还是会提示“拒绝”
因为本地的 ssh-agent 没有运行,需要手动运行它。(你也可以设置个开机启动)
//手动运行代理
$ eval $(ssh-agent -s)
//把私钥添加进去(注意这里的地址不要傻傻的照抄,看你自己的。前面生成的部分有说明)
$ ssh-add C:/Users/Administrator/.ssh/id_rsa
//连接测试:
$ ssh -T git@github.com
//结果
Hi 【你的用户名】! You've successfully authenticated, but GitHub does not provide shell access.
Git基本语法
https://code.csdn.net/help/CSDN_Code/code_support/new_8
Git设置账号的命令:
git config set user.name●设置绑定用户名,此处可以与平台用户名不同。
git config set user.email xxx@xxx.com●此处邮箱需为CODE注册邮箱
git remote add code <项目地址>●项目ssh地址。这里项目地址前 code 就是它取的短名称
git config -l●最后检查user.name及user.email是否配置正确
Git常用命令:
git init●在本地初始化git仓库
git clone Git项目的SSH地址●从远程克隆git仓库到本地
git status●查看当前状态
git add *.XXXX●加入版本控制系统
git add .●增加当前子目录下所有更改过的文件至index
git commit -m '这里是提交时的备注内容’●提交并添加log
git push●向服务器推送
git push -u ●向服务器推送前,先更新
git pull和git push
按照第一步完成设置后,一般而言,你本地代码仓将会有两个远端地址。指向github的远端主分支地址为origin master,指向CODE平台远端主分支地址为code master。
根据绑定账号时的设置,从两个平台回拉和推送代码的命令分别是:
从github回拉: git pull origin master
推送到github: git push origin master
从CODE回拉: git pull code master
推送到CODE: git push code master
为了保持本地项目处于最新状态,建议您在每次修改项目之前都是用git pull命令确认一下本地与远端的代码保持同步。
pull 三种用法
$ git pull <远程主机名> <远程分支名>:<本地分支名>
- 从远程的
master
拉取到本地的master
git pull origin master:master
- 从远程的
master
拉取到本地当前分支
git pull origin master
- 从远程的所有分支拉取到本地对应的分支
git pull
如果新建的分支,远端还没有:
本地新建分支 v1
$ git branch v1
切换到分支 v1 (git checkout -b v1 一样可以实现,具体意思是,切换到分支v1,如果它不存在就创建 )
$ git checkout v1
查看分支 (前端带 * 的就是当前分支)
$ git branch -a
本地添加或修改文件,后全部添加到缓存区
$ git add .
提交到本地仓库
$ git commit -m "这是分支1,远端还没有"
推送并创建远端分支
$ git push origin v1
本地没有的分支,直接从远端拉来:
git checkout -b 本地分支名 origin/远程分支名
Git命令:
从缓冲区撤销。 add 的逆操作。 可换成 . 表示全部
git reset HEAD
http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000/001374831943254ee90db11b13d4ba9a73b9047f4fb968d000
撤销修改。 用于胡改一通自己都后悔的时候。 可换成 . 表示全部
git checkout –
Git 取消对文件跟踪,相当于与git无关了。 可换成 . 表示全部
git rm -r --cached ●从缓存列表中清除最后的点表示全部,可换成具体的文件
diff
git diff:比较WorkSpace和stage,add之前有diff输出;add之后没有diff输出
git diff HEAD:比较WorkSpace和repo,add之前之后都有diff输出
git diff --cached:比较stage和repo,add之前没有diff输出;add之后有diff输出
直接从别人仓库 Clone下来的项目,现在想提交到自己的仓库怎么办?
1、先从对方的仓库 fork 项到自己仓库。
2、断开本地项目当前的远端地址 git remote remove origin
3、让本地项目与自己的仓库建立连接 git remote add origin git@github.com:jerryjin0803/MyGit.git
4、可以正常操作了。
分支信息
# 查看分支关联信息
git branch -vv
git remote show origin
cat .git/config
# 建立追踪关系,在现有分支与指定的远程分支之间 (如果没建立关系 push 和 pull 时都要明确指明分支)
$ git branch --set-upstream [branch] [remote-branch]
修改关联的远程仓库地址
比如仓库地址原来是https://gitee.com/jerryjin0630/ssm-integration.git
嫌弃长,改成了https://gitee.com/jerryjin0630/ssm.git
git remote set-url origin https://gitee.com/jerryjin0630/ssm.git
修改完后,会要你重新输入账号密码。
添加远程库
git remote add <远程创建另名:origin> <远程仓库地址:git@gitee.com:jerryjin0630/ssm.git>