基础设置
配置用户名,邮箱 [user] email = luxfang@1v.cn name = fangqiang 这个配置可以写在 ~/.gitconfig中或者.git/config中
查看设置 git config --list
基础命令
* git clone url 获取一个远程仓库
* git add file-name 跟踪一个文件
* git commit -m 'commit msg' 提交到本地
* git push origin master 将master分支推送到服务器
* git push 将当前所有分支推送到服务器
* git pull origin master 将远程仓库中master分支拉回本地
* git pull 将远程仓库中所有分支拉回本地
* git pull origin master = git fetch origin master + git merge origin/master
git 帮助
git (列出所有命令) git command -xyz (每个命令的用法,给出一个错误的参数时git会自动提示正确的语法格式)
ignore
在工作区中创建一个.gitignore文件。要忽略的文件写入.gitignore即可。
git commit
修改提交信息 git commit --amend 提交之前漏了一些操作(如:一个文件忘了修改) echo "add more" >> file git add file git commit --amend
撤销修改
git add 之前 git checkout HEAD filename(还可以检出任意版本的某个文件) git add 之后 commit之前 git reset HEAD filename git commit之后 (回到上一次提交的状态,不保留上一次提交到现在做的修改) git reset --hard HEAD^ git commit之后 (回到上一次提交的状态,保留上一次提交到现在做的修改) git reset --soft HEAD^
git rm
从暂存区中删除,工作区中文件不删除 git rm --cache filename 从暂存区中删除,工作区中文件也删除 git rm filename
git fetch
将所远程仓库中所有分支下载到本地 git fetch origin 检出分支 git checkout -b master origin/master 如果本地的分支名与远程分支名相同,可省略为如下写法 git checkout master
git pull
git pull origin 将远程仓库中所有分支下载到本地,并自动为当前分支做merge操作 (如果有分支bra1和bra2。而当前分支是bra1,则git pull相当于git fetch之后自动为你执行git merge origin/bra1)
git fetch 和git pull不同的就是,git fetch不会自动将你的当前分支合并
branch
添加分支 git branch branch_name 删除分支 git branch -d branch_name 分支重命名 git branch -m old_branch new_branch
tag
添加tag git tag -m 'version' v1.0 删除tag git tag -d tag_name push tag git push origin v1.0 | git push origin refs/tags/v1.0
(注意了,里程碑也需要推送,不然远程仓库中没有这个里程碑的信息)
merge,rebase
初始状态
git merge bra1之后
git rebase bra1之后
查看命令
git status 查看状态 git log 查看日志 git branch 查看分支 git remote 查看远程仓库 git show HEAD^:filename 查看其他其他版本的某个文件 :
git rev-parse test master v1.0 查看分支,tag的commit idgit show-ref 查看当前所有的分支,taggit cherry 查看没有推送到远程仓库的commit
其他
移动文件 git mv filename1 filename2
添加远程分支 git remote add bra_namr url
推送到特定分支 git push origin local_branch:reomte_branch
创建标签 git tag tag_name
在克隆仓库时,Git 通常会自动创建一个名为 master 的分支来跟踪 origin/master