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] [<commit>或HEAD]:将当前的分支重设(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 打印你记录你的每一次操作记录
如果使用的是http协议的github仓库地址,因此每次push 或者pull都需要密码,所以,将其修改为ssh协议的,这样,就不需要这么麻烦了。
$ssh-keygen $cat ~/.ssh/id_rsa.pub 把其中的内容贴到github网站的设置中 $ssh -T git@github.com 测试
修改项目中.git/config文件url = git@github.com:user_name/repo_name.git 或者使用如下命令:
git remote rm BranchName git remote add BranchName git@github.com:UserName/Repository.gitgit add *.cpp git rm cached 1.cpp git commit -m "添加aa 删除1.cpp" 这里如果提示要配置用户和邮箱,按照提示输入下面两句: git config --global user.email "a@b.com" git config --global user.email "user_name" git push 上传完成
可以看看下载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
这是因为本地修改未提交。如果希望用远程代码库中的文件完全覆盖本地工作版本. 方法如下: git reset --hard git pull 如果希望与远程合并,并保留本地所做的改动,方法如下: git stash 恢复到上次提交,同时备份本地所做修改 git pull git stash pop 将刚刚备份的修改应用到当前工作区
