查看配置
- git config -l
- git config --system --list 查看系统配置
- git config --global --list 查看本地配置
git http免密登录
- 在命令行输入命令:
git config --global credential.helper store
- 这一步会在用户目录下的.gitconfig文件最后添加:
[credential]
helper = store
- push 代码push你的代码(git push), 这时会让你输入用户名和密码, 这一步输入的用户名密码会被记住,(下次再push代码时就不用输入用户名密码!这一步会在用户目录下生成文件.git-credential记录用户名密码的信息。)
SSH配置
- 打开git bash
- 执行生成公钥和私钥的命令:ssh-keygen -t rsa 并按回车3下(为什么按三下,是因为有提示你是否需要设置密码,如果设置了每次使用Git都会用到密码,一般都是直接不写为空,直接回车就好了)
- 执行查看公钥的命令:cat ~/.ssh/id_rsa.pub
** 配置多个ssh公钥** - ssh-keygen -t rsa -C ‘your_email@example.com’ -f ~/.ssh/id_rsa_github (id_rsa_github 的名字不能和你原来私钥的名字相同)
全局设置用户名和邮箱,设置对应项目去掉–global
- git config --global user.name ‘admin’
- git config --global user.email ‘admin@gmail.com’
重新登录git
- 输入git config --system --unset credential.helper回车再git clone 网址
就可以重新登录用户名和密码啦 - 电脑的账户设置,删除git凭证,重新进行git身份认证
查看状态
- git status
查看当前项目中的设置
2. git config -l
查看git全局的设置
3. git config -l --global
分支相关操作
- git branch //查看本地所有分支
- git branch -r //查看远程所有分支
- git branch -a //查看本地和远程的所有分支
- git branch (branchname)//新建分支
- git checkout (branchname) //切换分支
- git checkout -b (branchName) //上面两行可以合成
- git push --set-upstream origin 分支名 //上传到远程
- git branch -d (branchname) //删除本地分支
- git branch -d -r //删除远程分支,删除后还 需推送到服务器
- git push origin: //删除后推送至服务器
- git branch -m //重命名本地分支
删除远程分支并push - git push origin --delete 分支名
- git fetch -p origin 清除远程分支的本地缓存
- git remote show origin 可以查看remote地址,远程分支,还有本地分支与之相对应关系等信息。
- git remote prune origin 删除了那些远程仓库不存在的分支
查看一下提交历史 - git log --oneline --graph
提交
- git add .
- git commit -m ‘提交说明’
- git push
克隆代码
-
git clone url(项目连接)
-
git fetct (是将远程主机的最新内容拉到本地,用户在检查了以后决定是否合并到工作本机分支中)
如果只想取回特定分支的更新,可以指定分支名: -
git fetch <远程主机名> <分支名> //注意之间有空格
最常见的命令如取回origin 主机的master 分支: -
git fetch origin master
-
git rebase
-
git rebase --continue
拉取代码
- git pull (则是将远程主机的最新内容拉下来后直接合,即:
- git pull = git fetch + git merge,这样可能会产生冲突,需要手动解决)
现在将版本退回到合并前,也就是回退一个版本 - git reset --hard head^
回退指定的commit的版本 - git reset --hard (commit id)
删除未推送的git commit - git reset --soft HEAD~1
- git rebase master(master为基础,将feature分支上的修改增加到master分支上,并生成新的版本)
- 产生冲突 ,修改完冲突,git add . 添加
- 现在是重点,之前的rebase其实只是完成了一半,由于出现冲突而终止,现在冲突解决,可以通过git rebase —continue继续完成之前的rebase操作
现有项目更换git地址
git remote -v
origin https://git.old.com/gourd/old.git (fetch)
origin https://git.old.com/gourd/old.git (push)
重新设置git的新地址
git remote set-url origin https://git.souche-inc.com/groud/new.git
将项目上传到git上
git push -u origin --all
git push -u origin --tags
完成。但需要注意git分支,新上传项目的分支只会保留本地的,之前的远程分支不存在。
git清除缓存()
git rm filename
1. 作用: 删除工作区文件,并且将这次删除放入暂存区。
2. 注意: 要删除的文件是没有修改过的,就是说和当前版本库文件的内容相同。
git rm --cached filename
1. 删除暂存区文件,但保留工作区的文件,并且将这次删除放入暂存区
git rm -r --cached filename
git rm -f filename
1. 作用: 删除工作区和暂存区文件,并且将这次删除放入暂存区。
2. 注意: 要删除的文件已经修改过,就是说和当前版本库文件的内容不同。
git rm -f --cached filename -f
合并指定的文件有时候想要合并A分支指定的文件或者文件夹到B分支上去,例如合并A分支的README.md文件到B分支上面。// 切换到A分支
git checkout A
// 获取A分支最新代码
git pull
// 切换到B分支
git checkout B
// 获取B分支最新代码
git pull
// 合并指定文件或者文件夹到分支
git checkout A README.md