[dev@hua1-dev git_workspace]$ git clone http://git.haoys.net/hua/mouse.git
正克隆到 'mouse'...
Username for 'http://git.haoys.net':
Password for 'http://[email protected]':
remote: Counting objects: 3, done.
remote: Compressing objects: 100% (2/2), done.
remote: Total 3 (delta 0), reused 0 (delta 0)
展开对象中: 100% (3/3), 完成.
检查连接... 完成。
首次克隆,可能要输入用户名和密码,下次就不用输入了。这样在本地就出现了项目的mouse文件夹,进入文件夹进行操作。
[dev@hua1-dev mouse]$ git branch //查看本地分支信息
* master
[dev@hua1-dev mouse]$ git branch -r //查看远程分支信息
origin/HEAD -> origin/master
origin/master
[dev@hua1-dev mouse]$ git branch --all //查看所有分支信息
* master
remotes/origin/HEAD -> origin/master
remotes/origin/master
当前工作分支在本地master上,远程分支是origin/master。
[dev@hua1-dev mouse]$ git log
commit f3472d6646335d9bd168ba22252033a7557295c5
Author: dev
Date: Fri Oct 18 15:27:48 2019 +0800
commit changes
commit c9023e59cc2c89f8301956c3652511cb42af204e
Author: 瀛<99>?96><87>?8D>
Date: Fri Oct 18 14:24:35 2019 +0800
Add new file
我们从master创建一个开发分支local-dev, 在开发分支上进行开发。
[dev@hua1-dev mouse]$ git branch local-dev
[dev@hua1-dev mouse]$ git status
位于分支 master
您的分支与上游分支 'origin/master' 一致。
nothing to commit, working tree clean
[dev@hua1-dev mouse]$ git branch
local-dev
* master
可以看到本地分支中多了一个分支local-dev,但现在指针依然位于master本地分支上。
[dev@hua1-dev mouse]$ git checkout local-dev
切换到分支 'local-dev'
[dev@hua1-dev mouse]$ git status
位于分支 local-dev
nothing to commit, working tree clean
[dev@hua1-dev mouse]$ git branch
* local-dev
master
可以看到现在位于本地分支local-dev上了。
注意:其实4和5可以用一个命令解决:git checkout -b,此命令可以创建并切换分支
[dev@hua1-dev mouse]$ git status
位于分支 local-dev
尚未暂存以备提交的变更:
(使用 "git add <文件>..." 更新要提交的内容)
(使用 "git checkout -- <文件>..." 丢弃工作区的改动)
修改: git-wiki.php
未跟踪的文件:
(使用 "git add <文件>..." 以包含要提交的内容)
a.php
修改尚未加入提交(使用 "git add" 和/或 "git commit -a")
[dev@hua1-dev mouse]$ git add git-wiki.php a.php
[dev@hua1-dev mouse]$ git status
位于分支 local-dev
要提交的变更:
(使用 "git reset HEAD <文件>..." 以取消暂存)
新文件: a.php
修改: git-wiki.php
[dev@hua1-dev mouse]$ git commit -m"commit changes"
[local-dev f3472d6] commit changes
Committer: dev
您的姓名和邮件地址基于登录名和主机名进行了自动设置。请检查它们正确
与否。您可以对其进行设置以免再出现本提示信息:
git config --global user.name "Your Name"
git config --global user.email [email protected]
设置完毕后,您可以用下面的命令来修正本次提交所使用的用户身份:
git commit --amend --reset-author
2 files changed, 10 insertions(+), 8 deletions(-)
create mode 100644 a.php
[dev@hua1-dev mouse]$ git status
位于分支 local-dev
nothing to commit, working tree clean
注:如果想两步合并成一步也是可以的:git commit -a
修改文件用git status后发现让用git add 加入到提交区,然后git commit提交到本地仓库,记住commit是提交到本地仓库,远程仓库是没有的,如果想提交到远程仓库,则还需要git push。
是新建分支第一次push,然后输入git push --set-upstream origin remote-dev
这行命令,再然后输入用户名和密码,就push成功了。以后的push就只需要输入 git push origin
[dev@hua1-dev mouse]$ git push
fatal: 当前分支 local-dev 没有对应的上游分支。
为推送当前分支并建立与远程上游的跟踪,使用
git push --set-upstream origin local-dev
[dev@hua1-dev mouse]$ git push --set-upstream origin local-dev
Username for 'http://git.haoys.net': sunwenhua
Password for 'http://[email protected]':
对象计数中: 4, 完成.
Delta compression using up to 4 threads.
压缩对象中: 100% (3/3), 完成.
写入对象中: 100% (4/4), 335 bytes | 0 bytes/s, 完成.
Total 4 (delta 1), reused 0 (delta 0)
remote:
remote: To create a merge request for local-dev, visit:
remote: http://git.haoys.net/hua/mouse/merge_requests/new?merge_request%5Bsource_branch%5D=local-dev
remote:
To http://git.haoys.net/hua/mouse.git
* [new branch] local-dev -> local-dev
分支 local-dev 设置为跟踪来自 origin 的远程分支 local-dev。
当关联分支和当前分支不一样时,使用命令:git push origin HEAD:remote-dev
[dev@hua1-dev mouse]$ git push
fatal: 如果您当前分支的上游分支和您当前分支名不匹配,为推送到远程的
上游分支,使用
git push origin HEAD:local-dev
为推送至远程同名分支,使用
git push origin dev
为了永久地选择任一选项,参见 'git help config' 中的 push.default。
[dev@hua1-dev mouse]$ git pull
Username for 'http://git.haoys.net': hua
Password for 'http://[email protected]':
Already up-to-date.
如果本地有一个分支dev我们想和远程仓库的分支local-dev进行关联,可以采用以下方式
[dev@hua1-dev mouse]$ git pull
Username for 'http://git.haoys.net': hua
Password for 'http://[email protected]':
当前分支没有跟踪信息。
请指定您要合并哪一个分支。
详见 git-pull(1)。
git pull <远程> <分支>
如果您想要为此分支创建跟踪信息,您可以执行:
git branch --set-upstream-to=origin/<分支> dev
[dev@hua1-dev mouse]$ git branch --set-upstream-to=origin/local-dev dev
分支 dev 设置为跟踪来自 origin 的远程分支 local-dev。
[dev@hua1-dev mouse]$ git status
位于分支 dev
您的分支与上游分支 'origin/local-dev' 一致。
nothing to commit, working tree clean
如果误把不想提交的代码commit到本地了,reset命令可以恢复到提交之前
1、先在log中找到想要恢复到的commitId
2、//将代码恢复到提交前,保留了本次提交的修改内容
git reset commitId
3、如果不想保留本次修改,直接用
git reset -hard commitId
git rm --cached :已 add(tracked)未 commit 的文件,使其回到未 add 状态(untracked)。
git rm -f : 从本地删除已 add 的文件。
git checkout -- :有修改的文件回到 tracked 状态,对已 tracked 的文件撤销修改。
git reset HEAD :让文件从暂存区到工作区。
git reset --soft HEAD^:撤销 commit,回到 tracked 暂存区状态。
git reflog -- : 查看返回的版本
git reset --soft HEAD@{1} -- :回退一步
//删除untracked文件 git clean
git clean -n:演习
git clean -f:删除当前目录下 untracked 文件,除过 .gitignore 里的文件或文件夹
git clean -f :指定路径下
git clean -df:删除当前目录下 untracked 文件和文件夹
git clean -xf:删除当前目录下所有 untracked 文件,不管 .gitignore
好基友:git reset --hard && git clean -f 使本地完全回退到上次 commit.
git checkout master
git pull origin master
//如果是自己一个开发就没有必要了,为了保险期间还是pull
git merge dev
git status
On branch master
Your branch is ahead of 'origin/master' by 12 commits.
(use "git push" to publish your local commits)
nothing to commit, working tree clean
//上面的意思就是你有12个commit,需要push到远程master上
> 最后执行下面提交命令
git push origin master
//删除远程分支Chapater6
git push origin --delete Chapater6
//删除本地分支 Chapater6
git branch -d Chapater6