远程库与本地库之间的操作:
1、在本地新建git仓库:
新建一个文件夹 mkdir git init 进行git仓库初始化
新建一个文档 touch 文件名
2、在本地建一个远程仓库,也是同样的操作,本地的远程仓库也是本地仓库,只是相对位置不一样,可以把它当作远程仓库
3、本地仓库关联本地远程仓库:
本地仓库localTest1:D:\git_exam\localTest1
本地远程仓库remoteTest:D:\remoteTest
4、在localTest1本地仓库进行用户和邮件配置 user="test",email="[email protected]"
git config --global user.name "test"
git config --global user.email "[email protected]"
5、在localTest1中关联远程:git remote add origin 绝对路径
git remote add origin ~/Temp/git_server/Test/ 不能用相对路径,~代表相对路径
git remote add origin /d/remoteTest
6、可以查看远程
git remote
7、查看远程仓库地址 git remote -v
8、查看配置 git config --list
9、删除远程仓库:git remote rm origin (提示远程仓库已经存在时)
10、关于分支的一些操作
git checkout -b dev 创建dev分支并切换到该分支
git checkout dev 切换到dev分支
git branch 查看当前分支
git branch -a 查看所有分支
git branch dev 创建dev分支
在当前分支dev合并master分支,把master分支的修改同步到dev分支上:git merge master
查看当前分支的日志:git log
分支合并图:git log --graph
11、撤销某次提交:git reset
12、查看当前目录: pwd
13、删除的一些git操作
删除文件夹:git rm -rf 文件夹名
删除远程dev分支:git push origin --delete dev
删除file文件夹及其下所有的文件:git rm file -r -f
删除文件:git rm 文件名 rm index.html
14、echo用法:
echo hello world!:直接输出打印hello world!
echo hello world! > demo.txt //会将hello world!内容重定向打印到demo.txt中
echo hello Fauss! > demo.txt //hello Fauss! 会将demo.txt中的hello world!覆盖掉
echo hello Fauss! >> demo.txt //hello Fauss!只会追加到demo.txt中的hello world!的后面
15、添加标签:git tag v1.1.1
16、查看文件内容:cat index
17、创建新文件:cat >filename.txt <<EOF
de>[root@localhost ~]# cat > linuxsir.txt << EOF 注:创建linuxsir.org.txt文件;
> 我来测试 cat 创建文件,并且为文件输入内容; 注:这是为linuxsir.org.txt文件输入内容;
> 北南南北 测试; 注:这是为linuxsir.org.txt文件输入内容;
> EOF 注:退出编辑状态;
18、cat 还有向已存在的文件追加内容的功能;
de>[root@localhost ~]# cat linuxsir.txt 注:查看已存在的文件linuxsir.txt 内容;
I am BeiNanNanBei From LinuxSir.Org . 注:内容行
我正在为cat命令写文档
[root@localhost ~]# cat >> linuxsir.txt << EOF 注:我们向linuxsir.txt文件追加内容;
> 我来测试cat向文档追加内容的功能; 注:这是追回的内容
> OK?
> OK~
> 北南 呈上
> EOF 注:以EOF退出;
19、新建bug分支
git checkout -b issue-101
git add readme.txt
git commit -m "fix bug 101"
git checkout master
git merge --no-ff -m "merged bug fix 101" issue-101
20、新建feature分支:
git checkout -b feature
git add vulcan.py
git status
git commit -m "add feature vulcan"
git checkout dev
git merge --no-ff -m "merged feature" feature
21、从远程克隆一份到本地可以通过git clone
Git支持HTTPS和SSH协议,SSH速度更快
git clone [email protected]:/home/git/changyuan/activityTicket.git
git clone [email protected]:nanfei9330/xx.git
22、本地库关联远程库,在本地仓库目录运行命令:
git remote add origin [email protected]:nanfei9330/learngit.git
23、推送master分支的所有内容
git push -u origin master
第一次使用加上了-u参数,是推送内容并关联分支。
推送成功后就可以看到远程和本地的内容一模一样,下次只要本地作了提交,就可以通过命令:
git push origin master
24、推送本地分支到远程分支,远程分支是本地分支名
git push origin 本地分支名(dev_wll):本地分支名(dev_wll)(把本地分支提交到远程分支上,当作远程的dev_wll分支)如果报错,执行一下
git push origin master,会出现everything up-to-date,然后在执行之前的那句话就好了
git push origin test:master // 提交本地test分支作为远程的master分支
git push origin test:test // 提交本地test分支作为远程的test分支
25、拉取远程分支
git pull:相当于是从远程获取最新版本并merge到本地
git pull origin master
要想把远程的master分支拉下来与本地的dev_wll分支合并,必须先拉下来
git fetch origin master
git merge dev_wll
26、查看远程分支状态
git log origin/dev_wbj
git中修改文件内容的退出,是ESC,其他的退出是ctrl+c
27、有时候git merge 和git pull origin dev_wbj:dev_wll不起作用,但是也不报错,直接用git pull origin dev_wbj,直接合并
28、有时候会遇到这样一个问题:test分支最新的版本是11月29号的,develop分支最新的版本是10月27号,test分支上到10月27号11月3号之间提交的代码,都已正式上线,但是develop分支的代码还未有完整的线上代码。可以使用git的复制命令,git cherry-pick commitId,将test分支上10月27-11月3的代码复制到develop分支上。
如果复制过程中有冲突,可以放弃复制,git cherry-pick --abort。同样的可以得到merge不同分支的时候如果有冲突,放弃合并 git merge --abort
29、版本回退
git reset --hard commitId 直接回退到某个提交版本
git reset --hard HEAD~0 0表示回退到当前提交版本,1表示回退到上一个版本,数字从0开始