git 基础命令(一)
git init
git init 用于创建新的git仓库,你可以在任何目录下使用此命令,使用后会在目录下生成.git目录。此时就可以创建文件,通过git add添加了。
git initgit clone
git clone 【url】可以拷贝一个 Git 仓库到本地,让自己能够查看该项目,或者进行修改。如果多个合作开发就可以在远程建立一个git仓库,然后开发者使用此命令去拷贝,然后就可以开发。
git 全局配置
Git在提交时会要求我们设置自己的用户名和邮箱,以便他人方便查看与联系提交者,为了方便使用可进行全局配置。
Git config --global user.name “harvy_dong”
Git config --global user.email “xxxx@sina.cn”
当然如果想要在某一个项目中单独使用其他邮箱这里可切换到项目目录中把上面的命令去掉–global参数重新执行一遍就好了。
git status
git statusgit status 可以查看当前分支状态
git add
git add 【path】用于添加文件到暂存区。
Git add -i 【path】可查看path目录下所有的修改的状态。输入后会进入一个子命令系统。
git add . 用于添加所有的已跟踪的文件到暂存区。
git add -i 子系统status子命令
输入1或者s或者status可以查看当前分支下文件状态,同git status 命令。
update子命令
可以通过update子命令(2: [u]pdate)把已经tracked的文件添加到索引库中。其操作和revert子命令类似。
revert子命令
可以通过git add -i的revert子命令(3:[r]evert)把已经添加到索引库中的文件从索引库中剔除。
(3: [r]evert)表示通过3或r或revert加回车执行该命令。执行该命令后,git会例出索引库中的文件列表。然后通过数字来选择。输入"1"表示git会剔除索引库中的文件列表中的第1个文件。
"1-15"表示git会剔除索引库中的文件列表中的第1个文件到第15个文件.回车将执行。
“2-5,6,8” 表示将第2,3,4,5,6,8个文件剔除索引库中,回车执行。
如果我们不输入任何东西,直接回车,将结束revert子命令,返回gitadd -i的主命令行。
add untracked子命令
通过add untracked子命令(4:[a]dd untracked)可以把还没被git管理的文件添加到索引库中。
diff子命令
可以通过diff子命令(6: [d]iff)可以比较索引库中文件和原版本的差异。
quit子命令
quit子命令(7: [q]uit)用于退出git add -i命令系统。
git commit
git commit 用于提交暂存区文件到仓库中。
Git commit -m “commit message”
Git commit -a会把所有已经track的文件add进来再提交。对于没有track的文件需要手动add。可使用gitcommit -a -m “message”快速提交代码。如果直接输入git commit会打开文本编辑器写提交注释(git不允许提交没有注释)。
Git commit --amend增补提交,会使用与当前提交节点相同的父节点进行一次新的提交,旧的提交会被取消。
git branch
git branch 是对分支的相关操作
Git branch不带参数是列出本地所有的分支
Git branch -a是列出本地和远程所有的分支
Git branch -r是列出远程的分支
Git branch localWorkingCopy是创建一个localWorkingCopy的分支,但是当前还在原来的分支上,没有切换到创建的分支。可使用gitcheckout localWorkingCopy切换到分支上。
git branch -m | -M oldbranch newbranch重命名分支,如果newbranch名字分支已经存在,则需要使用-M强制重命名,否则,使用-m进行重命名。
git branch -d | -D branchname删除branchname分支-d如果该分支没有合并到主分支会报错。-D会强制删除分支。删除分支前要切换到其他分支上。
git branch -d -r branchname删除远程branchname分支,这里只是删除本地的分支名,还要推送到服务器上。Git push origin :branchname语法是git push [远程名] [本地分支]:[远程分支]如果没有对应的本地分支就用空格代替。
Git v1.7.0后可使用下面的删除远程分支
git push --delete [远程名] [远程分支]