git学习日记

1、初始化一个git项目

git init

2、将添加的文件或修改添加到仓库

git add 文件名

3、查看当前的状态

git status

4、查看修改的不同,比较展示

# 修改文件后,尚未执行git add前执行
git diff

5、将修改提交到仓库

git commit -m "本次提交的描述"

6、查看提交历史

git log
# 简洁显示
git log --pretty=oneline

7、回滚版本

# 回滚到上一个提交的版本
git reset --hard HEAD^
# 注意,如果是Windows下的cmd环境,需执行如下
# 因^是cmd.exe的escape字符,属于特殊字符
git reset --hard HEAD"^"
# 回滚到前n个版本
git reset --hard HEAD~n

8、查看命令历史

git reflog

9、工作区和暂存区的理解
git跟踪并管理的是修改,而非文件
参考https://www.liaoxuefeng.com/wiki/896043488029600/897271968352576
10、放弃工作区的修改

git checkout -- 文件名

11、 关联远程仓库

# 远程仓库使用你自己的地址
git remote add origin [email protected]:susengo/learngit.git
# 查看远程库信息
git remote -v
# 删除已关联的远程库
git remote rm origin

12、 推送分支

# 第一次推送加-u参数,把本地的master分支内容推送的远程新的master分支
# 还会把本地的master分支和远程的master分支关联起来
# 以后的推送或者拉取时就可以简化命令
git push -u origin master
# 以后可直接执行
git push origin master
# 本地新建分支dev,并推送到远端
git checkout -b dev
git push origin dev:dev

13、 多人协作

# 地址使用你需要clone的远程仓库
git clone [email protected]:susengo/gitskills.git
# 查看远程库信息
git remote -v
# 在本地创建和远程分支对应的分支
git checkout -b branch-name origin/branch-name
# 建立本地分支和远程分支的关联
git branch --set-upstream branch-name origin/branch-name
# 从远程抓取分支
git pull
# 把本地未push的分叉提交历史整理成直线
git rebase

14、分支操作

  • 创建、切换、删除
# 创建dev,并切换到dev分支
git checkout -b dev
# 在本地创建和远程分支对应的分支
git checkout -b branch-name origin/branch-name
# 查看所有分支
git branch
# 切换到分支master
git checkout master
# 删除指定分支
git branch -d 分支名
# 删除未被合并过的分支
git branch -D 分支名
  • 合并
# 合并指定分支到当前分支
git merge dev
# 查看分支合并图
git log --graph --pretty=oneline --abbrev-commit
# 如果merge时提示如下错误:fatal: refusing to merge unrelated histories
# 可强制合并
git merge dev --allow-unrelated-histories

15、工作区

# 储藏工作区
git stash
# 查看已储藏的工作区stash列表
git stash list
# 恢复工作区
git stash apply
# 删除stash内容
git stash drop
# 恢复并删除工作区存档
git stash pop
# 复制一个特定的提交到当前分支
git cherry-pick 4c805e2

16、 标签

# 创建标签
# 默认为HEAD,可跟commit id指定
git tag 标签名 (commit id)
# 创建带有说明的标签
git tag -a 标签名称 -m "标签说明"
# 删除标签
git tag -d 标签名称
# 推送一个本地标签到远程
git push origin 标签名称
# 推送所有标签到远程
git push origin --tags
# 删除一个远程标签
git push origin :refs/tags/标签名称

17、 配置别名

# 比如git status就可以简化为git st
# 加上--global是针对当前用户起作用的
# 如果不加,那只针对当前的仓库起作用
git config --global alias.st status
# 更好的显示log
git config --global alias.lg "log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit"
# 查看全局配置信息
git config --global alias.st status

18、 搭建git服务器
搭建git服务器

19、 详细教程
廖雪峰大神的git教程

20、 后续待补充

你可能感兴趣的:(git学习日记)