Git学习笔记

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

 

其他

  1. 日常主要是pull、commit、push操作,鼓励使用分支

  2. git clone命令 拉的是仓库默认分支

  3. 不同电脑有不同的SSH公钥,公钥是与电脑绑定的,与账户无关;账户添加SSH公钥后,即对电脑授权,该电脑就能访问账户下的仓库。

  4. fork+pull request:公开仓库,任何人都能发起pull Request。然后等待管理员验证、合并

  5. 团队开发:将账户加入仓库成员,该用户就能直接push代码到仓库上

  6. 标签

  7. .gitignore文件--列出要忽略的文件模式

  8. Git服务器部署--了解

 

参考

上一篇:Centos 7 修改开机等待时间


下一篇:tcp raw socket