Git命令
1. 功能整理
手动创建新仓库
-
创建新文件夹(或者已有工程文件夹)、进入文件夹、执行
git init
, 在本地创建了一个新的Git仓库。 -
添加本地文件夹下已有文件
git add Readme.md
-
提交添加
git commit -m "first commit"
-
添加远程仓库
git remote add origin(远程主机名,可自定义) https://github.com/username/repositoryname.git(在远端已经新建好了仓库)
-
若
git remote add origin
显示已有remote origin,删除已有origin,git remote rm origin
,成功后再次添加 -
提交到远程仓库
git push origin master
克隆仓库
- 克隆远端服务器上的仓库到本地:
git clone address [newname](可选)
- 克隆某一分支:
git clone -b 分支名 远程仓库地址
- 创建本地仓库的克隆版本:
git clone /path/to/repository
注:以上的克隆方法,所使用的远程主机被默认命名为origin
,可以自己手动进行定义:
git clone -o hostname https://github.com/username/repositoryname.git
git remote (查看已有的远程主机名)
fork仓库并追踪更新
A项目是从B项目fork出来的。
添加B项目的地址: git remote add upstream SourceprojectURL
确认添加成功: git remote -v
获取项目B的更新:git fetch upstream
合并项目B的同步:git merge upstream/branchname
将本地更新推送到远端:git push
分支管理
- 创建新分支,并切换至该分支:
git checkout -b branchname
- 切换至主分支:
git checkout master
- 删除分支:
git branch -d branchname
- 推送分支到远端仓库,否则该分支不为他人所见:
git push origin branchname
- 将分支合并到当前分支下:
git merge <branchname>
push后,出现登录GitHub账号的界面,登录成功,就可以了。
添加、提交、推送
- 添加已有文件/文件夹到本地仓库:
git add filename(or filefoldername)
注:如果add后发现(尚未commit),有一些文件暂时不想提交,可使用git reset 撤回
git reset HEAD <filename>(暂时不想commit的文件)
- 提交改动:
git commit -m "提交说明"
(提交到HEAD,未到远端) - 提交跟踪过的(staged)文件:
git commit -am "提交说明"
- 推送改动到远端仓库:
git push origin master
(originw为远程主机名,master 为想要推送到的分支名称) - 若未克隆现有仓库,应先添加远程仓库:
git remote add origin <server>
注:第一次使用git commit
命令时,会出现以下提示:
*** Please tell me who you are.
Run
git config --global user.email "you@example.com"
git config --global user.name "Your Name"
to set your account's default identity.Omit --global to set the identity only in this repository.
需要先按要求运行命令(示例如下):
git config --global user.email "myname.qq.com" %不要漏引号
git config --global user.name "myname"
2. 命令整理
git remote – 管理主机名
git remote %列出所有远程主机名
git remote -v %查看远程主机网址
git remote show <主机名> %查看主机的详细信息
git remote add <主机名> <网址> %添加远程主机
git remote rm <主机名> %删除远程主机
git remote rename <原主机名> <新主机名> %修改远程主机名
git push – 本地分支更新推送至远程主机
git push origin master %将修改推送至origin的master分支下
git push -u origin master % -u 指定origin为默认主机,之后可直接使用git push进行推送
git push %当前只有一个追踪分支,或者已设置默认主机
git push origin branchname %提交新的分支到远端
git fetch – 将远程更新取回本地
git fetch origin(远程主机名) %将远程主机各分支的更新全部取回本地
git fetch origin master(分支名) %将origin的master分支的更新取回本地
git fetch origin master:tmp %从远程获取master分支的更新到本地的tmp分支上(tmp若不存在则自动新建)
git branch – 分支管理
git branch %查看本地分支
git branch -v %查看分支详细内容
git branch <branchname> %在本地新建分支
git branch -d <branchname> %删除分支
git reset – 回退
git reset HEAD <filename>(不想commit已add的文件)
git reset --soft <commit id> (不想push已commit的文件,但只修改版本库,不会更改暂存区和工作区)
git reset --hard <commit id> (不想push已commit的文件,且修改版本库、暂存区和工作区,要做好备份)
git rm – 删除
git rm --cached <filename> %只从远程仓库删除文件,保留本地文件
git rm <filename> %从缓存区中删除文件,同时删除物理文件
git merge – 合并
git merge <branchname> %将<branchname>分支合并到当前分支
git pull – 拉取
git pull <远程主机名> <远程分支名>:<本地分支名> %拉取上一次push,相当于git fetch + git rebase
git rebase – 合并
注:rebase与merge相比,可以将本地未push的分叉提交历史整理成直线,使我们在查看历史提交的变化时更容易。
git rebase <branchname> %将<branchname>分支合并到当前分支
其他
git status %查看当前推送的状态,一般是在 git add 后查看当前已add的文件
git log %查看commit log,可以看到每次commit对应的id
3. Git Bash 命令
复制:ctrl+ins
粘贴:shift+ins
以上为个人学习过程中不断积累的学习碎片,
学习是一个不断迭代的过程。
若您在本文档中发现了错误,
还望您告诉我,
不胜感激。
学海无涯,我在泛舟…