一、初始化git仓库
1、git init
使用 Git 的第一个命令,运行完git init后会生成一个.git的目录
git init
2、 git config
配置用户信息
提交代码时候所显示用户信息, --global表示对全局所有目录都有效 , --local对某个仓库有效,可以根据需求配置。
$ git config --global user.name "my-name"
$ git config --global user.email my-name@test.com
3、查看配置信息
执行完上面配置后可以使用git config --list 查看配置情况
$ git config --list
二、git基础指令
说明:
- workspace:工作区
- staging area:暂存区/缓存区
- local repository:版本库或本地仓库
- remote repository:远程仓库
1、git clone
将远程仓库代码拷贝到本地仓库
指定分支格式: git clone -b [ 分支] [SSH/HTTP链接]
2、git add
将文件添加到仓库
- git add 文件名: 将工作区的某个文件添加到暂存区
- git add . : 将当前工作区的所有文件都加入暂存区
3、git commit
将暂存区文件提交到本地仓库
git commit -m “提交说明” :将暂存区内容提交到本地仓库,并注释提交说明
4、git push
本地的分支版本上传到远程并合并
git push <远程主机名> <本地分支名>:<远程分支名>
git push <远程主机名> <本地分支名> :远程分支名与很低分支名相同可以省略 ‘ : ’
参数 :-f 强推
5、git pull
从远程获取代码并合并本地的版本
git pull <远程分支名><远程分支名>:<本地分支名>
实例
$ git pull
$ git pull origin
6、git log
git log 查看历史commit记录,记录内容----(SHA-A校验和,作者名称,邮箱,提交时间,提交说明)
7、git reset
git reset用去代码回滚,推回到指定commit提交处。
git reset HEAD^ 回滚到上次提交的版本
git reset HEAD^^ 回滚上上次提交的版本,就是多个^,以此类推或用~次数
git reset --hard 版本号 回滚到指定版本
参数 --hrad 修改HEAD指针指向,暂存区内容丢失,工作区恢复以前状态(丢去暂存区修改的代码)
常用搭配,git log 查看版本号 ,git reset 回滚指定版本 git push -f 强推覆盖代码(强推有风险一定检查清楚再推)
8、git cherry-pick
git cherry-pick 用于将一个分支上的某个commit合并到另一个分支
举例:dev分支下的这次commit提交合并到dev_PR024_UI上
9、git stash
git stash 将当前的工作状态保存到git栈,在需要的时候再恢复。
git stash : 保存当前的工作区与暂存区的状态
git stash pop : 弹出保存在stash内的内容
如果从stash中恢复的内容和当前目录中的内容发生了冲突,也就是说,恢复的内容和当前目录修改了同一行的数据,那么会提示报错,需要解决冲突,可以通过创建新的分支来解决冲突;
常用于,第一种情况由于本地与git pull下的内容发生冲突时,先git stash 保存当前状态,再git pull 更新本地,然后git stash pop 弹出stash内容,并自动合并,若有冲突将需要手动解决;
第二种情况是,在git checkout 切换其他分支时先暂存下当前分支内容。
三、分支管理
1、git branch
git branch 用于创建、查看分支
git branch : 查看本地所有分支
git branch -r : 查看远程所有分支
git branch -a : 查看本地和远程所有分支
git branch 分支名 :新建分支(此分支为本地分支) ,新建后不会自动切换到新建分支下,需要git checkout 新建分支名
git branch -d 分支名 :删除本地分支,要删除远程分支需要加参数 -r
2、git checkout
git checkout用于切换分支
git checkout 分支名 : 切换到指定分支
git checkout -b 分支名 : 创建并切换指定分支
还有另外一种用法
git checkout . :放弃工作区的全部修改
git checkout -- 文件名 : 放弃工作区中某个文件的修改
四、参数解释
d --delete:删除
-D --delete --force的快捷键
-f --force:强制
-m --move:移动或重命名
-M --move --force的快捷键
-r --remote:远程
-a --all:所有
五、设置ssh key
https://www.cnblogs.com/wscw/p/14118675.html