目录
- 基本配置
- 建立本地仓库
- 推送到远程仓库
1 基本配置
1.1 配置基本信息
git config --global user.name “itcast”
git config --global user.email “hello@itcast.cn”
1.2 查看配置信息
git config --global user.name
git config --globa user.email
1.3 设置常用指令别名
-
打开用户目录,创建 .bashrc 文件
部分windows系统不允许用户创建点号开头的文件,可以打开gitBash,执行touch ~/.bashrc
-
在 .bashrc 文件中输入如下内容:
#用于输出git提交日志
alias git-log='git log --pretty=oneline --all --graph --abbrev-commit'
#用于输出当前目录所有文件及基本信息
alias ll='ls -al'
- 打开gitBash,执行
source ~/.bashrc
1.4 解决GitBash乱码问题
- 打开GitBash执行下面命令
git config --global core.quotepath false
${git_home}/etc/bash.bashrc
文件最后加入下面两行
export LANG="zh_CN.UTF-8"
export LC_ALL="zh_CN.UTF-8"
2 建立本地仓库
2.1 基本步骤
-
git init
(初始化) -
git add 单个文件名
或git add .
(工作区 --> 暂存区) -
git commit -m '注释内容'
(暂存区 --> 本地仓库)
2.2 版本控制
-
git status
(查看的修改的状态(暂存区、工作区)) -
git-log
(查看日志) -
git log [option]
(查看日志)
options- all 显示所有分支
- pretty=oneline 将提交信息显示为一行
- abbrev-commit 使得输出的commitId更简短
- graph 以图的形式显示
-
git reset --hard commitID
(版本回退,commitID可使用git-log查看) -
git reflog
(查看已经删除的提交记录) -
根目录创建 .gitignore 文件 添加文件至忽略列表
# no .a files
*.a
# but do track lib.a, even though you're ignoring .a files above
!lib.a
# only ignore the TODO file in the current directory, not subdir/TODO
/TODO
# ignore all files in the build/ directory
build/
# ignore doc/notes.txt, but not doc/server/arch.txt
doc/*.txt
# ignore all .pdf files in the doc/ directory
doc/**/*.pdf
2.3 分支
-
git branch 分支名
(创建分支) -
git checkout 分支名
(切换到分支)
git checkout -b 分支名
(创建并切换分支) -
git merge 分支名
(合并分支,前提是已经git checkout master) -
如果有冲突,手动解决冲突.
-
git branch -d 分支名
(删除分支)
git branch -D 分支名
(强制删除分支)
3 Git远程仓库
3.1 Gitee
-
生成SSH公钥
ssh-keygen -t rsa
- 不断回车
-
获取公钥
cat ~/.ssh/id_rsa.pub
-
配置公钥
-
验证是否配置成功
ssh -T git@gitee.com
-
添加远端仓库
git remote add origin git@gitee.com:......
-
查看远程仓库
git remote
-
推送到远程仓库
git push --set-upstream origin master
(–set-upstream 建立本地与远端的联系(首次))git push
(非首次)
-
查看本地分支与远程分支的关联关系
git branch -vv
-
克隆
git clone <仓库路径> [本地目录]
(仓库路径使用SSH地址)
-
抓取:将仓库里的更新都抓取到本地,但不合并
git fetch [remote name] [branch name]
-
拉取:将远端仓库的修改拉到本地并自动进行合并,等同于fetch+merge
git pull [remote name] [branch name]
- fetch和pull 如果不指定远端名称和分支名,则抓取所有并更新当前分支
在一段时间,A、B用户修改了同一个文件,且修改了同一行位置的代码,此时会发生合并冲突。A用户在本地修改代码后优先推送到远程仓库,此时B用户在本地修订代码,提交到本地仓库后,也需要推送到远程仓库,此时B用户晚于A用户,故需要先拉取远程仓库的提交,经过合并后才能推送到远端分支。
3.2 GitHub
配置ssh密钥的方法:https://www.cnblogs.com/Maurice-code/p/10531303.html
git clone 出现fatal: unable to access ‘https://github.com 的解决方法:将命令行的https改为git即可.
[参考连接]
[1] 黑马程序员Git教程
[2] Github文档
[3] 最好的git教程: Learn Git Branching