“Git:基本操作”的版本间差异
跳到导航
跳到搜索
无编辑摘要 |
(→远程) |
||
第114行: | 第114行: | ||
== 远程 == | == 远程 == | ||
{| class="wikitable" | |||
|- | |||
! style="width:8%"|命令 !! style="width:30%"|说明 !! 备注 | |||
|- | |||
| '''<code>git remote</code>''' | |||
| 操作远程仓库 | |||
| | |||
# <code>git remote -v</code>:显示所有远程仓库 | |||
# <code>git remote show [remote]</code>:显示远程仓库的信息([remote]远程仓库) | |||
#: 如:git remote show https://github.com/tianqixin/runoob-git-test | |||
# <code>git remote add [shortname] [url]</code>:添加远程版本库([shortname]本地版本库,[url]远程仓库) | |||
#: 如:git remote add origin git@github.com:tianqixin/runoob-git-test.git | |||
# <code>git remote rm [name]</code>:删除远程仓库 | |||
# <code>git remote rename [old_name] [new_name]</code>:修改远程仓库名 | |||
|- | |||
| | |||
'''<code>git fetch</code>''' | |||
<br/> | |||
'''<code>git merge </code>''' | |||
| | |||
从远程获取代码库:<code>git fetch [alias] [branch]</code> | |||
<br/> | |||
合并远程数据到当前分支:<code>git merge [alias]/[branch]</code> | |||
| | |||
Note: | |||
# 拉取多个分支:<code>git fetch origin master stable oldstable</code>,从远程仓库'''origin'''拉取'''master'''、'''stable'''、'''oldstable'''分支; | |||
# 合并多个分支:<code>git merge origin/master hotfix-2275 hotfix-2276 hotfix-2290</code>,合并'''origin/master'''、'''origin/stable'''、'''origin/oldstable'''到当前分支。 | |||
拉取远程分支,并合并到本地分支,如: | |||
# <code>git fetch origin master</code>:从名为'''origin'''的远程上拉取名为'''master'''的分支到'''本地分支origin/master'''中; | |||
# <code>git merge origin/master</code>:合并'''origin/master'''分支到'''当前分支'''; | |||
#: '''''origin'''为配置的远程仓库别名([alias])''。 | |||
|- | |||
| '''<code>git pull</code>''' | |||
| | |||
从远程获取代码并合并本地的版本:<br/> | |||
<code>git pull <远程主机名> <远程分支名>:<本地分支名></code> | |||
| | |||
Note: | |||
# '''合并到当前分支''',可省略“'''<code>:<本地分支名></code>'''”; | |||
# 等效于<code>git fetch</code>+<code>git merge FETCH_HEAD</code>。 | |||
如: | |||
# <code>git pull</code>: | |||
# <code>git pull origin</code>: | |||
# <code>git pull origin master</code>:拉取远程主机'''origin'''的'''master'''分支,并与本地'''当前分支'''合并; | |||
# <code>git pull origin master:brantest</code>:拉取远程主机'''origin'''的'''master'''分支,并与本地的'''brantest'''分支合并; | |||
|- | |||
| '''<code>git push</code>''' | |||
| | |||
从将本地的分支版本上传到远程并合并:<br/> | |||
<code>git push <远程主机名> <本地分支名>:<远程分支名></code> | |||
| | |||
# '''本地分支名与远程分支名相同''',可省略“'''<code>:<远程分支名></code>'''”; | |||
# <code>--force</code>强制推送:<code>git push --force <远程主机名> <本地分支名>:<远程分支名></code>; | |||
# <code>--delete</code>删除远程主机的分支:<code>git push <远程主机名> --delete <远程分支名></code>; | |||
|} | |||
== 日志 == | == 日志 == |
2020年9月18日 (五) 14:28的版本
仓库
命令 | 说明 |
---|---|
git init
|
在当前目录初始化Git仓库 |
git init <newrepo>
|
在指定目录(<newrepo> )初始化Git仓库
|
git clone <repo>
|
从现有Git仓库(<repo> )中拷贝项目到当前目录
|
git clone <repo> <directory>
|
从现有Git仓库(<repo> )中拷贝项目到指定目录(<directory> )
|
git clone
可以所用不同的协议,包括ssh
,git
,https
等:git clone git@github.com:fsliurujie/test.git
:SSH协议git clone git://github.com/fsliurujie/test.git
:GIT协议git clone https://github.com/fsliurujie/test.git
:HTTPS协议
- (常用ssh,因为速度较快,还可以配置公钥免输入密码)
修改
命令 | 说明 | 备注 |
---|---|---|
git add
|
将工作区新增或修改的文件添加到暂存区 |
|
git commit
|
提交暂存区到本地仓库 |
|
git status
|
查看仓库当前的状态,显示有变更的文件 |
Microsoft Windows [版本 10.0.19041.508]
(c) 2019 Microsoft Corporation。保留所有权利。
D:\git\eijux>git status
On branch master
Your branch is up to date with 'eijux/master'.
Changed not staged for commit:
(use "git add <file>..." to include in what will be committed)
(use "git restore --staged <file>..." to unstage)
new file: 1.txt
Changes to be committed:
(use "git restore --staged <file>..." to unstage)
new file: 2.txt
Untracked files:
(use "git add <file>..." to include in what will be committed)
3.txt
|
git diff
|
比较文件的不同,即暂存区和工作区的差异 |
|
git reset
|
回退版本 |
关于[HEAD]:
|
git mv
|
移动或重命名工作区文件 |
|
git rm
|
删除工作区文件 |
|
分支
远程
命令 | 说明 | 备注 |
---|---|---|
git remote
|
操作远程仓库 |
|
|
从远程获取代码库: |
Note:
拉取远程分支,并合并到本地分支,如:
|
git pull
|
从远程获取代码并合并本地的版本: |
Note:
如:
|
git push
|
从将本地的分支版本上传到远程并合并: |
|
日志
命令 | 说明 | 示例 |
---|---|---|
git log
|
查看版本提交历史 |
Microsoft Windows [版本 10.0.19041.508]
(c) 2019 Microsoft Corporation。保留所有权利。
D:\git\eijux>git log
commit 5e26159ad738b08b9321eba9ecaeff39c8acc42f (HEAD -> master, eijux/master)
Author: Eijux <chen@eijux.com>
Date: Fri Nov 1 01:18:47 2019 +0800
idea commit test 01<E7><82><B9>18<E5><88><86>
commit ffa14211ab7088d9782de019328238dcfe09a4bc
Merge: 3fbc79a fc32a4a
Author: Eijux <chen@eijux.com>
Date: Thu Oct 31 16:03:24 2019 +0800
Merge branch 'master' of github.com:Eijux/eijux
commit 3fbc79ae2c8b7199c22133d1f3e4115848dbe749
Author: Eijux <chen@eijux.com>
Date: Thu Oct 31 04:19:09 2019 +0800
idea commit test
(END)
|
git reflog
|
查看版本命令历史 |
Microsoft Windows [版本 10.0.19041.508]
(c) 2019 Microsoft Corporation。保留所有权利。
D:\git\eijux>git reflog
5e26159 (HEAD -> master, eijux/master) HEAD@{0}: pull eijux master: Fast-forward
fc32a4a HEAD@{1}: commit: add gitignore file
d07be0a HEAD@{2}: commit: branch management test
492be10 HEAD@{3}: merge dev: Merge made by the 'recursive' strategy.
fc1038b HEAD@{4}: checkout: moving from dev to master
9d0f76e (dev) HEAD@{5}: commit: write a line on branch dev
7640602 (eijux/dev) HEAD@{6}: checkout: moving from master to dev
fc1038b HEAD@{7}: reset: moving to HEAD
fc1038b HEAD@{8}: commit: branch back to master
7640602 (eijux/dev) HEAD@{9}: merge dev: Fast-forward
63fa5ac HEAD@{10}: checkout: moving from dev to master
7640602 (eijux/dev) HEAD@{11}: commit: add dev branch
63fa5ac HEAD@{12}: checkout: moving from master to dev
63fa5ac HEAD@{13}: pull eijux master --allow-unrelated-histories: Merge made by the 'recursive' strategy.
da60d32 HEAD@{14}: commit: add t5.txt
e88cb69 HEAD@{15}: commit: delete rmtest.txt
cc1e40c HEAD@{16}: commit: changed t4 and add t5
1707196 HEAD@{17}: commit: changed t4
378fb5a HEAD@{18}: commit: add t4.txt
e3501ab HEAD@{19}: commit: add t4
ea463d0 HEAD@{20}: commit: add t2.txt
92ad079 HEAD@{21}: commit: git commit single file test
061529e HEAD@{22}: reset: moving to 061529
69e722f HEAD@{23}: reset: moving to head
69e722f HEAD@{24}: reset: moving to head^
061529e HEAD@{25}: reset: moving to 061529
69e722f HEAD@{26}: reset: moving to 69e722
061529e HEAD@{27}: commit: git diff test
69e722f HEAD@{28}: commit: banben test
fd1fd5f HEAD@{29}: commit (initial): git add test
|