git clone https://xxx/xx.git
git fetch
:相当于是从远程获取最新版本到本地,不会自动merge
git pull
:相当于是从远程获取最新版本并merge到本地
git diff 2a 2b
比较两个版本
git branch test
创建本地test分支
git checkout 1a
切换到1a这个版本
git branch
查看本地分支
git branch -a
查看远程分支
git reflog show
查看所有的commit
git add -u
将当前已跟踪且已修改文件更新
git clean -d -f
//强制删除未被添加到git的路径中的文件
删除某个提交之前的所有提交
echo 'base' | git commit-tree bc67bd^{tree}
从commit bc67bd开始, 命名为base
git rebase --onto 5f2802 bc67bd
5f2802是上一句指令生成的sha前6位
git push -f
git reset [--hard|soft|mixed|merge|keep] [
:将当前的分支重设(reset)到指定的commit或者HEAD(默认,如果不显示指定commit,默认是HEAD,即最新的一次提交),并且根据[mode]有可能更新index和working directory。mode的取值可以是hard、soft、mixed、merged、keep。下面来详细说明每种模式的意义和效果。
–hard 重设(reset) index和working directory,自从commit以来在working directory中的任何改变都被丢弃,并把HEAD指向commit。
git reset --hard b45959e
可以回退到这个版本
git log
会按提交时间列出所有的更新,最近的更新排在最上面
git log –p
输出每一个commit之间的差异信息
git log --stat
输出每一个commit之间的差异统计信息
git log--oneline
输出历史commit的简短信息
git log --before="2019:12:31" --after="2019:01:01"
输出1个时间段的
git reflog
打印你记录你的每一次操作记录
echo "# test" >> README.md
git init
git add README.md
git commit -m "first commit"
git remote add origin https://github.com/xxx/test.git
git push -u origin master
如果使用的是http协议的github仓库地址,因此每次push 或者pull都需要密码,所以,将其修改为ssh协议的,这样,就不需要这么麻烦了。
$ssh-keygen
$cat ~/.ssh/id_rsa.pub
把其中的内容贴到github网站的设置中
$ssh -T [email protected]
测试
修改项目中.git/config文件url = [email protected]:user_name/repo_name.git
或者使用如下命令:
git remote rm BranchName
git remote add BranchName [email protected]:UserName/Repository.git
git add *.cpp
git rm cached 1.cpp
git commit -m "添加aa 删除1.cpp"
这里如果提示要配置用户和邮箱,按照提示输入下面两句:
git config --global user.email "[email protected]"
git config --global user.email "user_name"
git push
上传完成
git init
git add .
git remote update
git checkout master
可以看看下载zip文件后再同步
如下,我把src里的全部移除,但是本地文件还保留。
git rm -r -n --cached */src/\*
//-n:加上这个参数,执行命令时,是不会删除任何文件,而是展示此命令要删除的文件列表预览。
git rm -r --cached */src/\*
//最终执行命令.
git commit -m "移除src目录下所有文件的版本控制"
//提交
git push origin master
//提交到远程服务器
git branch -f master HEAD
git checkout master
切换到分支AAA
git checkout AAA
把dev分支合并到AAA分支
git merge dev
error: Your local changes to the following files would be overwritten by merge:
xxx.c
Please commit your changes or stash them before you merge.
这是因为本地修改未提交。如果希望用远程代码库中的文件完全覆盖本地工作版本. 方法如下:
git reset --hard
git pull
如果希望与远程合并,并保留本地所做的改动,方法如下:
git stash
恢复到上次提交,同时备份本地所做修改
git pull
git stash pop
将刚刚备份的修改应用到当前工作区