Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

git 常见命令和操作 #14

Open
junhey opened this issue Jul 17, 2017 · 0 comments
Open

git 常见命令和操作 #14

junhey opened this issue Jul 17, 2017 · 0 comments
Labels

Comments

@junhey
Copy link
Owner

junhey commented Jul 17, 2017

  1. 范例

0.1 [] 表示可选

0.2 COMMENT 表示任意注释

0.3 PATH/TO/FILE 表示文件路径

0.4 SHA 标识提交或合并的 SHA-1 值

0.5 BRANCH_NAME 标识为自己的分支名

0.6 以 git 开头的为命令行操作,以 TGit 开头的为桌面操作

0.7 操作如果为分页模式,输入 q 退出

0.8 操作如果为 vim 编辑界面,输入 :wq 提交编辑

0.9 单击和双击均指主键(一般为左键)

  1. 查看更新

1.1 查看更新文件列表

git status 或 git diff-files(未 add,可查看文件权限变化)

TGit:单击右键 -- TortoiseGit -- Check for modifications

1.2 查看文件更改内容

git diff HEAD PATH/TO/FILE

TGit:单击右键 -- TortoiseGit -- Check for modifications -- 双击相应文件

1.3 查看所有更改内容

git diff HEAD

  1. 本地提交

2.1 只修改了现有文件

git commit -am "COMMENT"

TGit:单击右键 -- Git Commit -> "BRANCH_NAME" -- 在 Message 下填写注释 -- OK

2.2 添加了新文件

git add .
git commit -m "COMMENT"

TGit:单击右键 -- Git Commit -> "BRANCH_NAME" -- 勾选添加的文件(或点击 All 全选),在 Message 下填写注释 -- OK

2.4 修改提交

[git add [-A] .]
git commit --amend -[a]m "COMMENT"

TGit:单击右键 -- Git Commit -> "release" -- 勾选 Amend Last Commit -- OK

2.5 查看提交的更新文件列表

git diff --name-status HEAD^1 HEAD

TGit:单击右键 -- TortoiseGit -- Show log -- 单击对应提交

2.6 查看提交的单个文件更新

git diff HEAD^1 HEAD PATH/TO/FILE

TGit:单击右键 -- TortoiseGit -- Show log -- 单击对应提交 -- 双击对应文件

2.7 查看提交的所有文件更新

git diff HEAD^1 HEAD

2.8 还原提交

2.8.1 提交未上传

git reset [--hard|--soft] HEAD^1

TGit:TortoiseGit -- Show log -- 右键单击对应提交 -- reset "BRANCH_NAME" to this... -- 选择 Hard|Soft|Mixed -- OK

2.8.2 提交已上传

git revert SHA

TGit:单击右键 -- TortoiseGit -- Show log -- 右键单击对应提交 -- Revert Change by this commit -- OK
单击右键 -- Git Commit -> "BRANCH_NAME" -- OK

  1. 把自己分支合并到 release

3.1 查看合并的更新文件列表

git diff --name-only HEAD^1 HEAD

TGit:单击右键 -- TortoiseGit -- Show log -- 单击对应合并

3.2 查看合并的单个文件更新

git diff HEAD^1 HEAD PATH/TO/FILE

TGit:单击右键 -- TortoiseGit -- Show log -- 单击对应合并 -- 左键双击对应文件

3.3 查看合并的所有文件更新

git diff HEAD^1 HEAD

3.4 产生冲突的文件并非自己修改过的

git checkout --ours PATH/TO/FILE
git add PATH/TO/FILE

TGit:单击右键 -- TortoiseGit -- Resolve -- 单击选择相应文件(可按 Shift 或 Ctrl 进行多选) -- 点击右键 -- 单击 Revert 或单击 Resolved conflit using 'mine'

3.5 合并结果中包含非自己修改过的文件

3.5.1 同时存在冲突

git reset PATH/TO/FILE
git checkout -- PATH/TO/FILE
git commit -m "COMMENT"(解决冲突后)

TGit:单击右键 -- TortoiseGit -- Check for modifications -- 单击选择相应文件(可按 Shift 或 Ctrl 进行多选) -- 点击右键 -- 单击 Revert

3.5.2 不存在冲突

git checkout HEAD^1 PATH/TO/FILE(该文件为修改或删除)
rm PATH/TO/FILE(该文件为新增)
git commit --amend -m "COMMENT"

TGit:单击右键 -- TortoiseGit -- Show log -- 单击对应合并 -- 单击对应文件(可按 Shift 或 Ctrl 进行多选) -- 点击右键 -- 单击 Revert to parent revision(该文件为修改或删除)
单击右键 -- TortoiseGit -- Show log -- 单击对应合并 -- 单击对应文件 -- 点击右键 -- Explore to -- 删除文件(该文件为新增)
单击右键 -- Git Commit -> "release" -- 勾选 Amend Last Commit -- 单击 OK

3.6 还原合并

3.6.1 合并未上传

git reset --hard HEAD^1

TGit:TortoiseGit -- Show log -- 右键单击对应提交 -- reset "BRANCH_NAME" to this... -- 选择 Hard -- OK

3.6.2 合并已上传

git revert -m 1 SHA

TGit:单击右键 -- TortoiseGit -- Show log -- 右键单击对应提交 -- Revert Change by this commit -- parent1 -- OK
单击右键 -- Git Commit -> "BRANCH_NAME" -- OK

  1. 开发协作

4.1 在别人开发基础上继续,但对应开发未上传至product

git checkout -b BRANCH_NAME SHA(SHA 为别人合并到 release 前的最后一次提交)

TGit:单击右键 -- TortoiseGit -- Show log -- 单击对应提交(同上) -- 点击右键 -- Create Branch at this version... -- 在 Branch 右边的文本框输入分支名 -- OK

4.2 在自己开发时,需要用到别人在自己开发后增加的内容(别人未上传到product)

4.2.1 自己开发的内容未上传到 release

git rebase SHA(SHA 为别人合并到 release 前的最后一次提交)

4.2.2 自己开发的内容已上传到 release

git merge --no-ff SHA(同上)

TGit:单击右键 -- TortoiseGit -- Merge -- 点击 Commit 左边的单选按钮 -- 在 Commit 右边的文本框中填入 SHA(同上) -- 勾选 No Fast Forward -- OK

4.3 在自己开发过程中,需要用到别人在自己开发后增加的内容(别人已上传到product)

4.3.1 自己开发的内容未上传到 release

git rebase product

TGit:单击右键 -- TortoiseGit -- Rebase -- 在 Upstream 右边的下拉框中选择 product -- Start Rebase

4.3.2 自己开发的内容已上传到 release

git merge --no-ff product

@junhey junhey added the Angular label Apr 27, 2018
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

1 participant