1.初始配置
配置user.name/email
git config --global user.name "xx"
git config --global user.email xx@example.com
#查看配置信息(配置文件路径:C:\Users\userName\.gitconfig)
git config --list
生成并配置ssh公钥
ssh-keygen -t rsa -C "xxx@example.com"
cat ~/.ssh/id_rsa.pub
ssh -T git@gitee.com
2.Git基础
初始化
首先git上创建仓库
然后本地生成项目代码
方式一:clone代码到本地工作空间,然后完成后续更新、提交
git clone git@gitee.com:liu_fenghua/git-note.git
方式二:自建项目(此方式在创建仓库时不要选择项目的授权协议和.gitignore 文件)
#工作目录仓库初始化
git init
touch README.md
git add README.md
git commit -m "first commit"
#添加远程仓库
git remote add origin git@gitee.com:liu_fenghua/git-note.git
#推送所有分支和tags
git push -u origin master
#附:加上-u参数,Git不但会把本地master分支内容推送到远程的master分支,还会两分支关联起来
日常操作
#常用命令
git status
git add * #开始跟踪新文件,或把已跟踪文件放到暂存区,或标记为已解决状态
git commit -m "xx" #提交到本地仓库
git commit -a #把所有已经跟踪过的文件暂存起来一并提交
git push remote-name branch-name #提交到远程仓库
#从远程仓库抓取数据
git pull remote-name branch-name #从原始克隆的远端仓库中抓取数据,且合并到工作目录中的当前分支
git fetch remote-name #注:只是将远端的数据拉到本地仓库,并不自动合并到当前工作分支
/* 附:如果git pull提示no tracking information,则说明本地分支和远程分支的链接关系没有创建,
* 用命令 git branch --set-upstream-to=<remote-name>/<branch-name> <branch-name> */
#撤销修改
git reset --hard commit_id #已commit提交,本地版本回退(前提:没有推送到远程库)
git reset HEAD <file> #已add操作添加进暂存区,撤销
git checkout -- file #已修改,还原
3.Git分支
git branch branch-name #创建分支
git checkout branch-name #切换分支
git merge branch-name #合并分支到当前分支(参数--no-ff禁用Fast forward模式,生成新的commit)
git checkout -b branch-name [remote-name/branch-name] #创建并跟踪远程分支
git branch -d branch-name #删除分支
git branch #查看当前分支
通知项目管理员抓取代码:git request-pull
4.实战
##Git鼓励大量使用分支
##对于每一个git项目,最好依次建立三个分支:master=>dev=>feature
git init
git add .
git commit -m 'first commit'
git remote add origin git@gitee.com:userName/xxx.git
git push -u origin master
#创建并切换至dev分支
git checkout -b dev
git push -u dev
#创建并切换至feature分支,开始实际开发
git checkout -b feature
#dev分支合并feature分支*【每添加一个新功能,最好新建一个feature分支】
git add .
git commit -m '提交到dev分支'
git checkout dev
git merge feature #合并分支(后续还要将dev push到远程仓库)
git checkout feature #切换到feature分支上继续开发
#当feature分支崩了的补救方法:
git add .
git commit -m 'xxx' #在切换分支之前一定要commit一下!否则会出现莫名其妙的问题!
git checkout dev
git branch -D feature #强制删除崩溃的feature分支
git checkout -b feature #根据dev分支重新生成新的feature分支
/**
* master分支是主分支,因此要时刻与远程同步;
* dev分支是开发分支,团队所有成员都需要在上面工作,所以也需要与远程同步;
* feature分支是否推到远程,取决于你是否和你的小伙伴合作在上面开发。
* 总之,就是在Git中,分支完全可以在本地自己藏着玩,是否推送,视你的心情而定!
*/
附参考链接:https://blog.csdn.net/qq_40323256/article/details/108294923
储藏
git stash #储藏变更
git stash list #查看现有储藏
git stash apply stash@{0} #还原储藏
git stash drop #移除储藏
git stash pop
其他
-
日常主要是pull、commit、push操作,鼓励使用分支
-
git clone命令 拉的是仓库默认分支
-
不同电脑有不同的SSH公钥,公钥是与电脑绑定的,与账户无关;账户添加SSH公钥后,即对电脑授权,该电脑就能访问账户下的仓库。
-
fork+pull request:公开仓库,任何人都能发起pull Request。然后等待管理员验证、合并
-
团队开发:将账户加入仓库成员,该用户就能直接push代码到仓库上
-
标签
-
.gitignore文件--列出要忽略的文件模式
-
Git服务器部署--了解
参考