赞
踩
git config --global user.name "fn"
git config --global user.email "邮箱"
查看配置信息
git config --global user.name
git config --global user.email
C:\Users\
),创建.bashrc
文件touch ~/.bashrc
.bashrc
的内容,例子如下:alias git-log='git log --pretty=oneline --all --graph --abbrev-commit'
alias ll='ls -al'
git config --global core.quotepath false
git安装目录/etc/bash.bashrc
文件最后加入下面两行export LANG="zh_CN.UTF-8"
export LC_ALL="zh_CN.UTF-8"
要使用Git进行版本控制,首先就要获得本地仓库
A. 在任意路径下创建一个空目录,作为本地Git仓库
B. 进入目录,在目录中打开Git bash
C. 执行git init
D. 执行成功会有一个隐藏的.git
目录
git add:从工作区 --> 暂存区
git commit 从暂存区 --> 本地仓库
首先新建一个文件后
git status
查看修改的文件状态,如刚新建文件时的状态.git add .
将当前工作区(目录)的所有文件添加到暂存区;也可以git add test.txt
提交指定文件到暂存区。git commit -m "说明"
暂存区>>仓库git log [option]
可以看见提交记录。--all
显示所有分支--pretty=oneline
将提交信息显示为一行--abbrev-commit
输出更短的commit的id--graph
以图的形式显示git log --all --pretty=oneline --abbrev-commit --graph
,这时命令很长,就可以通过设置别名的方式解决问题。git reset --hard commitId
可以跳转到ID对应的版本。
比如:新建了一个文件,提交;然后在文件中加了内容,再提交。这时就有两个commit
如果想回到未加内容的版本,就git reset --hard ab87d8f
。
git reflog
查看历史记录,如果想再回到修改版本,就需要推断出修改版本的commitId(因为回退了,git log查看不到对应的id了)
.gitignore
文件。分支可以把工作从开发主线上分离开来进行重大Bug修改、开发新功能,以免影响开发主线。
git branch
git branch 分支名
git checkout 分支名
git checkout -b 分支名
git merge 指定分支名
master
上合并其他分支。git branch -d 分支名
删除分支时,需要做各种检查git branch -D 分支名
不做任何检查,强制删除(小d删不了,就用大D)git remote -v
查看当前创建的别名git remote add 别名名称 https://XXX远程仓库的url
创建别名git remote set-url 别名名称 URL
修改别名区别 | push | clone |
---|---|---|
https | 需要验证用户名密码(就算配置了SSH也要) | 随意克隆任何项目 |
ssh | 配置了SSH就直接push,不需要验证(除非设置了SSH密码) | 必须是该项目的拥有者(在GitHub配置了SSH的) |
Push推送到远程仓库
git push 别名/仓库URL 分支名
遇到问题:GitHub不再支持密码凭证Push。
解决办法:(注:也可以配置SSH,更方便)
A. 进入GitHub得到Token。
B. 修改远程仓库别名,将token加进去
git remote set-url 别名名称 https://Token@github.com/账户名/仓库名.git
eg:git remote set url test01 https://XXXXXX@github.com/Fu_nan/git_test01.git
C. 再执行Push
方法链接
Fetch抓取远程仓库
git fetch [remote name] [branch name]
A. 不指定别名和分支名,则抓取所有分支。
B. 抓取就是将远程仓库的更新都抓取到本地,不会进行合并。
Pull拉取远程仓库
git pull 别名/仓库URL 分支名
A. 当本地仓库和远程仓库内容不一致时,想要远程仓库的内容,就需要拉取。
B. 不指定别名和分支名,则拉取所有分支并更新当前分支。
C. 拉取就是将远程仓库的修改拉到本地并自动进行合并,等同于fetch+merge。
遇到问题:报错10054和Timed out
解决办法:
====================================
解决10054问题
git config --global http.sslVerify “false”
git config --global https.sslVerify “false”
====================================
解决Timed out问题
git config --global --unset http.proxy
git config --global --unset https.proxy
git clone 仓库URL
合并冲突
甲:仓库创建者 乙:需要协同开发
甲:点进项目>>Settings>>Collaborators>>Add people>>对方的username or email>>邀请后Pending Invite复制邀请链接发送给乙。
乙:复制链接到浏览器>>Accept invitation接受邀请,乙就加入了开发,可以Push内容到仓库了。
.ssh
目录ssh-keygen -t rsa -C email
,全点回车。ssh -T git@github.com
测试是否配置成功Idea会自动寻找Git的安装位置,点击Test可以测试是否有效;
如果没有自动寻找到就自行指定Git的位置(精确到git.exe)
.gitignore
,加入.idea
等不需要被管理的文件。(.gitignore一般都是通用的,如下)# Created by .ignore support plugin ### Java template *.class # Mobile Tools for Java (J2ME) .mtj.tmp/ # Package Files # *.jar *.war *.ear *.zip # virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml hs_err_pid* .idea *.iml *.bak *.class *.rar *.log .project .settings .classpath target classes lib *.DS_Store .gradle build out log
B. 初始化本地仓库
C. 提交到本地仓库(中间可能有弹窗,确定就行)
D. 提交到远程仓库
3. 克隆远程仓库Git>>Clone…
4. Push冲突。多人协同开发时,无论任何时候想要Push时首先Pull,然后再Commit并Push
如果有提交冲突,Idea会有提示,通过图形化界面就可以解决。
对于以上两个参考文章,遇到的坑:
测试连通:ssh -T git@域名orIP
(不用带端口,会去config文件自动寻找)
自定义密钥文件名:ssh-keygen -t rsa -C “your email” -f id_rsa_centos
,-f不带路径默认生成在桌面。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。