git整理

https://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000/0013760174128707b935b0be6fc4fc6ace66c4f15618f8d000/

 

配置git身份信息:

git config --global user.name "quzq"

git config --global user.email "quzq@qq.com"

查看配置的身份信息:

git config user.name

git config user.email

使用git终端切换到文件夹下, 运行初始化, 来管理这个文件夹

git init  # 初始完成会在文件夹下生成.git隐藏文件夹

git remote add origin https://xxx.git  # 配置git的远程地址

git push -u origin master           # 推送到远程库.

git pull origin master              # 获取源代码

git add .                        # 添加所有改变的文件到staged状态

git add xx.py                     # 指定添加要提交的文件

git commit -m “说明”              # 提交

git log                          # 查看提交日志

git status                        # 获取git详细状态

git status -s                      # 同上, 获取简明信息

git diff                          # 用来查看文件未add时的修改(staged状态下)

git diff --cached                   # 用来查看add后的修改(staged状态下) 都是和源上的代码做对比

git diff HEAD                      # staged与非staged状态都可用该命令查看更改

git log --oneline                   # 查看提交日志, 在一行中显示

git commit --amend --no-edit        # 把变更放入最后一次的变更中, 描述不变, 但是commitid会改变

 

staged状态到非staged状态:

使用git add 1.py,状态就成了staged. 如何回退非staged状态呢?   

git reset 1.py            # 撤回了上次的add, 只是撤回操作步骤, 更改的内容还在

git reset --hard commit_id  # 回到commitid所在的状态, 此状态之后的更改全部抹掉了, 是真的删掉了

                       # 即使使用该命令再回到以后, 也只保留那个时间点的东西, 在那之后编辑的

   # 但未保存的东西也会彻底消失.

git log --oneline          # 用来查看截至当前的提交记录

git log --oneline --graph    # 用来查看截至当前的提交记录(图形形式)

git reflog               # 用来查看所有的提交记录,含未来. 辅助用于回去后再回到未来.

 

对单个文件的回退:

git reset commit_id 1.txt  # 不退版本, 只退文件到commitid, 文件内容不变

git checkout commit_id -- 1.py  # 不退版本,只退文件到commitid,文件内容改变,其后修改丢弃.

Git checkout -- 1.txt     # 用于文件被修改, 但未add, 丢弃本次修改的所有内容.

# checkoutreset的区别

checkout用于切换分支和从指定节点的缓存区中覆盖回某个文件

Checkoutreset都可用于回复文件, checkout会直接作用到文件中和暂存区, reset只作用到暂存区, 不动文件

单个文件回退:

如未add: 使用Git checkout -- 1.txt  # 注意--后又空格

已经add: 使用git reset 1.txt先撤回add操作, 再使用上面的还原修改

分支系列:

Git branch dev      # 创建dev分支

Git branch          # 查看所有分支, 哪个带*号表示当前在哪个分支

Git checkout dev     # 切换到dev分支

Git branch -d dev     # 删除dev分支, 此时不能处于dev

Git checkout -b dev   # 创建并移动到dev分支上.

在各分支上做的修改不会影响master, 需要合并时使用如下命令:

Git merge dev       # 合并devmaster, 当文件是新加入时会让编辑commit备注

git merge --no-ff -m "合并83fa1.dev" 83fa1.dev  # 新建文件合并时可直接用改命令合并加命名

# 临时缓存区

Git stash         # 添加变更到临时缓存区

Git stash pop     # 从缓存区拿回之前缓存的内容

# 修改文件名

git mv 旧名称 新名称

# 删除本地分支及远程分支

git branch -d 分支名称            -- 删除本地分支

git push origin --delete 远程分支名称  -- 删除远程分支

git branch -a                  -- 查看远程分支列表

git branch                   -- 查看本地分支列表

备注: 创建本地及远程分支及代码的提交与合并

1. 更新master分支

$git checkout master

$git pull

2. 将创先分支

git checkout -b wb-fqg587009-merge3     # 在本地创建分支

git push origin wb-fqg587009-merge3      # 将本地的分支推送到远程, 即在远程也创建个分支

3. 在新分支上提交的case

git add xxxx

git commit -m

git push origin wb-fqg587009-merge3

4. 回到master

git checkout master

git merge wb-fqg587009-merge3

原文地址:https://www.cnblogs.com/quzq/p/11462148.html