简单的git初级命令:
cd 进入目录
mkdir b 创建文件夹b
touch b 创建 b 文件
move移动文件 mv b.txt ../b.txt 将b.txt移动到上一个目录
copy复制 cp a.txt c.txt 复制a.txt为c.txt
pwd打印当前目录
git remove删除文件 rm a.txt 删除a.txt
remove b 删除b文件
clear 清空当前的命令
exit 关闭git bash
实例:
echo hello 在命令行打印内容hello
echo "hello" > a.txt 创建txt文件并在里面打印内容hello
cat a.txt 在命令行中查看打印出a.txt的内容hello
cp a.txt b.txt 复制一份a.txt叫b.txt
ls 查看当前目录
ls .git 查看本地.git目录
ls -l 查看文件夹
ls -a 查看隐藏目录
ls.. 查看上一级目录
mv b.txt ../b.txt 将b.txt移动到上一级目录
mv b ./domes/ 将b文件移动到demos文件的下面
ls查看当前目录
mv a.txt c.txt 将a.txt改名字为c.txt
rm c.txt 删除c.txt
clear清除命令行所有的命令
键盘:ctri + L 也是清除所有的命令行
对比:简单的dos操作:
常用的DOS命令
dir(directory) : 列出当前目录下的文件以及文件夹
md(make directory) : 创建目录
rd(remove directory) : 删除目录
cd(change directory): 进入指定目录
cd.. : 退回到上一级目录
cd \: 退回到根目录
exit : 退出 dos 命令行
vim 的操作:
vim readme 进入readme文件
dd 是删除一整行
i 编辑文本
Esc 进入正常模式
: 进入命令模式
q! 放弃保存并退出
: 进入命令模式
wq 是保存退出
http://blog.laofu.online/2017/12/30/vim-quickstar/
git配置文件:
git config --list 查看git的配置信息
git config --global user.name “祝四明”设置用户名
git config --global user.email "siming.zhu@touchtrips.com" 设置邮箱
cd ~ 进入git主目录
ls查看主目录下面的文件
ls -a 查看隐藏目录
vim .gitconfig 进入编辑器编辑gitconfig文件
git version 查看git版本
换行符 :
去掉默认add后出现的警告提示
git config --global core.autocrlf ture
git config --global core.safecrlf false
git config --list
core.safecrlf=false 出现在配置文件里面
.gitignore :
vim .gitigonre 进入编辑模式
i 进入插入模式 在里面写想要忽略的文件
.project 忽略.object文件
*.obj 忽略全部obj文件
ls -l -a 查看当前文件 此时会多一个.gitigoner 文件
git status 查看状态 此时会多一个.gitigoner 文件
最后要将这个文件加入暂存区
设置别名(设置简短的命令名字)
git config --global alias.ci commit 单独配置一个 把commit替换成ci
设置全部别名
cd ~
vim .gitconfig
在这里面设置全部的别名
储存凭证(记住密码和用户名)在http协议下 每次都需要提交都需要输入用户名个密码 可以改成ssh协议
或者在HTTPS的协议下 输入命令
git config --global credential.helper wincred
去掉这个功能:
vim ~/.gitconfig
dd 去掉[credential]和helper=wincred
ESC
:
wq 保存
SSH协议下 如何生成密钥
生成RSA密钥对
ssh-keygen -t rsa -C "你的Email地址"
enter
entre
enter
cd ~
ls -l -a
cd .ssh/
ls -l -a
cat id_rsa.pub 查看公钥
复制公钥放到github网站上 在头像下拉菜单中的setting --》ssh and GPG keys 在SSK keys 右面点击 New SSH key
然后填写title 将复制的公钥 放置到key中 点击 add ssh key 验证网站的密码
git config -l 查看git配置
touch b 创建 b 文件
echo 1111 >> b 往b文件里面添加东西
git reset c0a7950 --hard 版本回退 回退git add .的文件内容
git push -f 下载回退的当前版本
git statud 查看冲突的状态
vim a 进入并编辑文件a
创建分支
1.查看分支:git branch
创建分支:git branch <name>
切换分支:git checkout <name>
2.创建+切换分支:git checkout -b <name>
3.git add
4.git commit -m "提交一下"
5.git commit -m "再次修改又提交"
6.git push -u origin <name>分支的名字
合并某分支到当前分支:git merge <name>
删除分支:git branch -d <name>
git的命令
git
git help -a 查看全部git子命令
git blame <file name> 逐行查看文件的修改历史
git blame -L 100,110 <file name> 从第100行开始查看文件的历史
git diff 查看变更 就是查看git add .的变更
git clean
git clean -n列出打算清除的文档 就是清除git add .的变更
git clean -f真正的删除
git clean -x -f 连gitinore中忽略的文档也清除
git status 查看状态
git status -sb 查看简短的状态信息
git log 查看版本
git log --grep add 只查看add类型的文件
git log -n
git log --online 简化版的版本信息
git log --pretty=format:"%h %ad | %s%d [%an]" --graph --date=short 图形化版本信息
git history 查看远程库所有的版本以及变更历史
git history -10 查看10条记录
git diff
git diff --cached
git show 哈希值 查看某个特定的文件信息
git show HEAD^ 前一个版本
git show HEAD^^ 前两个版本
git show HEAD~2 前两个版本
git show HEAD-3 查看当前的版本
版本回退:
git reset HEAD 版本回退
git reset 哈希值 --hard 回退到指定的版本
git init 初始化一个本地仓库
git add 添加到暂存区
git add -p a 按批次提交文件
出现Stage this hunk [y,n,q,a,d,/,s,e,?]? s(选择s,分割提交)
y:yes n:no q:退出 a: d:退出 /: s:分割 e:手工编辑块
选择想提交和不想提交的 y 和 n
git commit -m "message" 提交说明
注意:在有历史版本的情况下 可以合并两个命令
git commit -a -m "message" 合并两个命令
git commit -am "message" 合并两个命令
将本地创建好的仓库与远程仓库关联,并且提交代码到远程仓库
git remote -v 查看本地是否与远程仓库建立连接
git remote add origin http//:github.com/zhusiming123/demo.git 与远程仓库建立连接(origin代表远程仓库的地址)
git push origin master 将本地仓库的文件提交到远程仓库
git clone https:github.com/zhusiming123 newFile 克隆远程仓库代码到新的文件newFile中
下拉代码
//git pull --rebase
//如果rebase暂停,git rebase --continue
//如果还是不行,git rebase --abort 删除这个rebase
分支的建立
git branch <name> 建立分支
git checkout <name> 切换分支
git checkout -b <name> 创建+切换分支
要想合并分支
必须先切回主分支 git checkout master
再 merge 合并 git merge <name>
合并完分支在删除
git branch -d <name>
将分支推送到远程仓库
git push -u origin <name>
冲突的信息格式
《《《《《 HEAD
1111111--master 主分支HEAD版本
====== 等号上面是一个版本 等号下面是一个版本
1111111--iss53 分支iss53版本
》》》》》iss53
删除的步骤
删除提示的内容,保留需要的地方
git add .
git commit 不写messege
会弹出修改的具体内容,ESC > : > wq
完成合并
修改分支的名字
git branch -m old_name new_name 修改名字
git branch -M old_name new_name 强制修改名字
删除分支
git branch -d foo 如果这个分支没有合并到主分支或者其他分支,会有一个提示
git branch -D foo 强制删除
列出远程分支
git branch -remote
git branch -v 查看各个分支的信息
查看已经合并的分支
git branch --merged
git branch --no-merged
列出远程合并的分支
git branch -r --mergerd
git branch -remote --mergerd
取出远程foo分支
git cheout -t origin/foo
删除远程分支
git push origin <space>:<remote branch>
git fetch -p
合并分支
git merge <branch name>
合并分支,拒绝fast forward,产生合并commit
git merger --no-ff
保存进度
git stash 保存进度
git stash pop 弹出进度
git stash lish 查看stash列表
git stash clear 删除stash列表
fork工作流
1.在自己的远程仓库中fork主仓库的代码
2.git clone https 克隆自己远程仓库的代码
3.修改
4.git add .
5.git commit -m ""
6.git push 提交到自己的远程仓库
7.在远程仓库页面中点击pull request
8.点击 New pull request 就可以看到从哪个仓库推向哪个仓库
9.点击Create pull request
10.填写信息后 create pull request
11.主仓库的人会收到邮件 ,然后merge pull request
然后 confirm merge
12.自己的邮箱会收到邮件,提醒已经merge
与远程仓库进行关联:forking工作流
git remote -v 查看远程仓库的版本
git remote add upstream 主仓库的地址 与主仓库建立连接
例如:git remote add upstream git@github.com:wa ngding/git-demo
此时查看:git remote -v
显示:
origin git@github.com:wangding2/git-demo(fetch) 本地分支仓库
origin git@github.com:wangding2/git-demo(fetch)
upstream git@github.com:wangding/git-demo(fetch) 远程主仓库
upstream git@github.com:wangding/git-demo(fetch)
每次都在本地下拉官方主仓库的地址:(作用:保持本地和远程的代码同步)
git pull upstream master 下拉主分支的代码
然后再提交到自己的仓库
git push 或者 git push origin
然后提交到自己的远程仓库后,在进行pull request 请求
建立分支的pull request
1.查看:git remote -v
2.git remote add upstream 主仓库的地址
3.显示:
origin git@github.com:wangding2/git-demo(fetch) 分支仓库
origin git@github.com:wangding2/git-demo(fetch)
upstream git@github.com:wangding/git-demo(fetch) 远程仓库
upstream git@github.com:wangding/git-demo(fetch)
4.创建并切换分支
git checkout -b <name>
修改
git add .
git commit -m "提交分支的代码"
git push -u origin <name> 将分支提交到远程仓库
在自己的远程仓库页面,点击compair pull request
可以查看到推送情况,然后填写信息
然后点击 create pull request
主的远程仓库就会收到邮件,在主仓库的列表里的pull request中
主仓库可以合并代码,点击merge pull request合并代码
再次点击confirm merge 最终完成合并
如果需要其他修改,还可以在次开一个分支,进行提交
git remote -v
$ git remote add wht http://zhusiming@192.168.1.119/wanhugou/wanhutong-portal.git
$ git fetch wht
$ git merge wht
补充:
1.git push --force 强制推送到远程库
2.gitk 打开git GUI 的查看分支界面
3.