git config --global user.name "xxx"
git config --global user.email "xxxxx.com"
Create a new repository
git clone git@xxxxxxx.git
cd folder
touch README.md
git add README.md
git commit -m "add README"
git push -u origin master
Existing folder or Git repository
cd existing_folder
git init
git remote add origin git@xxxxxxx.git
git add .
git commit
git push -u origin master
git checkout master 切换到master分支
git pull 更新信息/更新到最新版本
git status/git ls-files -m 列出修改过的文件
git add 1.txt 2.txt 把修改的文件加到提交队列中
git commit -m "修改1.txt 2.txt" 提交修改的文件
git push origin mytest:master 把本地的mytest分支推到origin的master分支
git branch 查看本地分支
git branch -a 查看远程分支
git branch a1 创建个分支
git branch -d a1 删除本地分支a1
git branch -D a1 强制删除本地分支a1
git push origin --delete a1 删除远程分支a1
git checkout a1 切换到a1分支
git checkout . 放弃本地修改
git push origin a1 把本地的a1分支推到origin上去
git push origin master --force 把master分支强制推到origin上去
git push --force 会把本地的全部开发分支推到远程(执行要注意,不会提醒git pull, 而是直接强制覆盖之前的代码)
git tag v1 给当前分支打上tag
git push origin --tags 把tag推送到远程
git push origin :a1 删除origin上的a1分支
git reset HEAD^ --hard 复位到上一个版本
git reset commit-has --hard 复位到commit-has位置
--hard 复位工作目录和索引(要特别注意:比如对1.txt进行了修改,加这个参数复位会导致1.txt还原,修改的东西会丢失)
git diff --name-only HEAD^ 和上一个版本的修改比较
git diff --name-only hashcode1 hashcode2 两个hashcode间的修改比较
本地分支和远程分支之间的推送
git checkout -b feature-branch origin/feature-branch //检出远程的feature-branch分支到本地
git push origin feature-branch:feature-branch //推送本地的feature-branch(冒号前面的)分支到远程origin的feature-branch(冒号后面的)分支(没有会自动创建)
本地创建并在gitup账号创建
git remote add origin git@github.com:账号名/项目名称.git
git push -u origin master
git 把其他分支上的文件拿来覆盖本地
git checkout oldversion -- 文件地址
版本回退
方法一
git log --pretty=oneline
前1个版本
git reset --hard HEAD^
前2个版本
git reset --hard HEAD^^
上100个版本
git reset --hard HEAD~100
方法2
查看操作日志,第一列为版本ID
git reflog
git reset --hard "版本id"